zoukankan      html  css  js  c++  java
  • python一天一题(1)

    #有一个文件,文件名为output_1981.10.21.txt 。
    # 下面使用Python: 读取文件名中的日期时间信息,并找出这一天是周几。
    # 将文件改名为output_YYYY-MM-DD-W.txt
    # (YYYY:四位的年,MM:两位的月份,DD:两位的日,W:一位的周几,并假设周一为一周第一天)
    
    '''
    解题 思路:
    1、获取文件名,截取日期 ,生成日期变量参数
    
    '''
    import os,re
    import time,datetime
    class hello:
        def __init__(self):
            print('求文件名,取出日期,算出1年中哪一天,更改文件名')
        def get_date(self,filename):
            (filepath,tempfilename) = os.path.split(filename)#将文件名和路径分割开。
            (shotname,extension ) = os.path.splitext(tempfilename)#分离文件名与扩展名
            dateStr = re.split('_',shotname)[1]
            date = re.split('[.]',dateStr)
            return date
        #给个时间 ,找出这一天是1年中的哪一天
        '''
            解题 思路:
            一年12个月的天数弄成一个list,只有2月份不确认,闰年28天,非闰年29天,得出2月份天数。
            求前面几个月的天数之和+当月天数,就是当当年第几天
        '''
        def which_day(self):
            num = 0
            date_list = self.get_date('D:pythonlearnoutput_1981.10.21.txt')
            year =int( date_list[0])
            month = int(date_list[1])
            day = int(date_list[2])
            sum = 0
           #计算2月份的天数
            if(year%4==0):
                num = 28
            elif(year%400==0):
                num = 28
            else:
                num =29
            month_list = [31, num, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
            for i in range(0,month-1):
                sum +=month_list[i]
            #第几天
            sum +=day
            return sum,year,month,day
    
        #获取当前系统时间 年月日 周
        def get_now_time(self):
            now = time.localtime()
            weekday = time.strftime('%w',now)
            year = datetime.datetime.now().year
            month = datetime.datetime.now().month
            day = datetime.datetime.now().day
            return year,month,day,weekday
    
        def modify_filename(self,filename,newname):
            filepath,tempfilename = os.path.split(filename)
            print(filepath)
            print(tempfilename)
            os.rename(filepath+'\'+tempfilename,filepath+'\'+newname)
            print('修改成功!')
    
    fo = hello()
    sum,year,month,day = fo.which_day()
    print(year,'年',month,'月',day,'日是一年中的第',sum,'天')
    #修改文件名称
    (year1,month1,day1,weekday1) = fo.get_now_time()
    print(type(year1))
    newname = 'output_'+str(year1)+'-'+str(month1)+'-'+str(day1)+'-'+str(weekday1)+'.txt'
    fo.modify_filename(r'D:pythonlearnoutput_1981.10.21.txt',newname)
    
  • 相关阅读:
    PAT B1027 打印沙漏 (20 分)
    PAT B1025 反转链表 (25 分)
    PAT B1022 D进制的A+B (20 分)
    PAT B1018 锤子剪刀布 (20 分)
    PAT B1017 A除以B (20 分)
    PAT B1015 德才论 (25 分)
    PAT B1013 数素数 (20 分)
    PAT B1010 一元多项式求导 (25 分)
    HDU 1405 The Last Practice
    HDU 1165 Eddy's research II
  • 原文地址:https://www.cnblogs.com/sincoolvip/p/8480073.html
Copyright © 2011-2022 走看看