1. 程式人生 > >python一天一題(1)

python一天一題(1)

使用 lena 這一 年月日 pfile temp 當前 list name

#有一個文件,文件名為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:\python\learn\output_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:\python\learn\output_1981.10.21.txt‘,newname)

python一天一題(1)