正则表达 替换
有一个文件,文件名为output_1981.10.21.txt 。下面使用Python:
1.读取文件名中的日期时间信息,并找出这一天是周几。
2.将文件改名为output_YYYY-MM-DD-W.txt (YYYY:四位的年,MM:两位的月份,DD:两位的日,W:一位的周几,并假设周一为一周第一天) {:9_218:}
我是翻着网页的datetime的用法写的一个函数‘可以实现你的要求
你随便输入一个文件的名称试试吧
import re
import datetime
from datetime import *
def test(f):
date1 = re.findall("(\d{4}\.\d{1,2}\.\d{1,2})\.",f)
date = "-".join(date1.split("."))
timeTuple = datetime.strptime(date, "%Y-%m-%d")
y = timeTuple.year
m = timeTuple.month if timeTuple.month>9 else"0"+str(timeTuple.month)
d = timeTuple.day if timeTuple.day>9 else"0"+str(timeTuple.day)
w = timeTuple.isoweekday()
newdate = "-".join(list(map(str,)))
newname=f.replace(date1,newdate)
print(newname)
return newname
f = "output_2017.4.21.txt"
test(f)
>>>output_2017-04-21-5.txt gopythoner 发表于 2017-4-21 16:30
我是翻着网页的datetime的用法写的一个函数‘可以实现你的要求
你随便输入一个文件的名称试试 ...
加注释的:
import re
import datetime
from datetime import *
def test(f):
#正则匹配,提取时间字符串
date1 = re.findall("(\d{4}\.\d{1,2}\.\d{1,2})\.",f)
date = "-".join(date1.split("."))
# 将字符串转换成时间格式
timeTuple = datetime.strptime(date, "%Y-%m-%d")
y = timeTuple.year#年
m = timeTuple.month if timeTuple.month>9 else"0"+str(timeTuple.month)#月,不足两位数的加0
d = timeTuple.day if timeTuple.day>9 else"0"+str(timeTuple.day) #同上
w = timeTuple.isoweekday()#星期
newdate = "-".join(list(map(str,)))
#替换原来的文件名称中日期
newname=f.replace(date1,newdate)
print(newname)
return newname
f = "output_2017.4.21.txt"
test(f) 本帖最后由 mustang 于 2017-4-24 11:02 编辑
gopythoner 发表于 2017-4-21 16:30
我是翻着网页的datetime的用法写的一个函数‘可以实现你的要求
你随便输入一个文件的名称试试 ...
谢啦!!我也是翻着datetime的用法,实现了前面的,最后一步就卡了!
有个问题,为什么写了 import datetime还写 from datetimeimport* ?? mustang 发表于 2017-4-24 10:59
谢啦!!我也是翻着datetime的用法,实现了前面的,最后一步就卡了!
有个问题,为什么写了 import...
举个栗子:
模块A,有一个函数a()
如果是import A,那当你要用a函数的时候需要这样用 A.a()
但是如果我是from A import * 的话,我就可以直接a()这样使用
同理,其实就是为了使用datetime里面的其他方法或者函数可以不用在前面带上datetime. gopythoner 发表于 2017-4-24 11:09
举个栗子:
模块A,有一个函数a()
如果是import A,那当你要用a函数的时候需要这样用 A.a()
明了!!{:9_235:}
页:
[1]