python一天一題(1)
阿新 • • 發佈:2018-02-27
使用 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)