题目作者:Vamei 出处:http://www.cnblogs.com/vamei
有一个文件,文件名为output_1981.10.21.txt 。下面使用Python: 读取文件名中的日期时间信息,并找出这一天是周几。将文件改名为output_YYYY-MM-DD-W.txt (YYYY:四位的年,MM:两位的月份,DD:两位的日,W:一位的周几,并假设周一为一周第一天)。
代码如下:
import re
import os
import time
import datetime
filename = "output_1981.10.21.txt" #要操作的文件名
m = re.match("output_(\d{4}.\d{2}.\d{2}).txt$", filename) #括号圈起来的正则表达式的一部分,称为群
searchResult = m.group(1) #以m.group(number)的方法来查询群
print("match result:%s"%searchResult)
dates = searchResult.split('.') #通过指定分隔符对字符串进行切片,放在一个表中返回
#print dates
for date in dates: #通过for循环,取值
year = dates[0]
month = dates[1]
day = dates[2]
#print year
week = datetime.datetime(int(year), int(month), int(day)).strftime("%w") #调用datetime对象的strftime()方法,来将datetime对象转换为特定格式的字符串
neweek = '%s-%s-%s-%s' %(year, month, day, week)
print neweek #输出带week的日期
newfile = re.sub("\d{4}.\d{2}.\d{2}", neweek, filename) #在string中利用正则变换pattern进行搜索,对于搜索到的字符串,用另一字符串replacement替换。返回替换后的字符串。
print newfile
#os.rename('/data/sdv1/caoyang/HelloWorld/CyTest/output_1981.10.21.txt', '/data/sdv1/caoyang/HelloWorld/CyTest/output_1981-10-21.txt') #rename(src, dst),重命名文件,src和dst为两个路径,分别表示重命名之前和之后的路径。
import re
import os
import time
import datetime
filename = "output_1981.10.21.txt" #要操作的文件名
m = re.match("output_(?P<year>\d{4}.\d{2}.\d{2}).txt$", "output_1981.10.21.txt") #将群命名,以便更好地使用m.group查询
result = m.group('year')
print("match result:%s"%result)
dates = result.split('.') #通过指定分隔符对字符串进行切片,放在一个表中返回
#print dates
for date in dates: #通过for循环,取值
year = dates[0]
month = dates[1]
day = dates[2]
week = datetime.datetime(int(year), int(month), int(day)).strftime("%w") #调用datetime对象的strftime()方法,来将datetime对象转换为特定格式的字符串
neweek = '%s-%s-%s-%s' %(year, month, day, week)
print neweek #输出带week的日期
newfile = re.sub("\d{4}.\d{2}.\d{2}", neweek, filename) #在string中利用正则变换pattern进行搜索,对于搜索到的字符串,用另一字符串replacement替换。返回替换后的字符串。
print newfile
#os.rename('/data/sdv1/caoyang/HelloWorld/CyTest/output_1981.10.21.txt', '/data/sdv1/caoyang/HelloWorld/CyTest/output_1981-10-21.txt') #rename(src, dst),重命名文件,src和dst为两个路径,分别表示重命名之前和之后的路径。