Python标准库__正则表达式练习

题目作者: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为两个路径,分别表示重命名之前和之后的路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曹宇飞丶

您的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值