2024-09-30 22:24:28 发布
网友
文件名的最后一部分附有日期的文件。像这样
string = 'blablablabla_20210812.jpg'
我这样提取数据
string[-12:][:-4]
我想在年、月和日期之间加上“-”。我就是这样做的
string[-12:][:-4][:4] + '-' + string[-12:][:-4][4:][:2] + '-' + string[-12:][:-4][6:]
在我看来,这似乎比阅读机器代码更复杂。你们能告诉我哪些方法更实用吗
您可以将string[-12:][:-4][:4]压缩为string[-12:-8]以使其看起来更干净。代码如下所示:
string[-12:][:-4][:4]
string[-12:-8]
string = 'blablablabla_20210812.jpg' print(string[-12:-8] + '-' + string[-8:-6]+ '-' + string[-6:-4]) # 2021-08-12
或者,如果您想要文本:
print(string[:-8] + '-' + string[-8:-6]+ '-' + string[-6:-4]) # blablablabla_2021-08-12
一种解决方案是使用正则表达式和^{}:
import re s = "blablablabla_20210812.jpg" s = re.sub(r"_(\d{4})(\d{2})(\d{2})\.", r"_\1-\2-\3.", s) print(s)
印刷品:
blablablabla_2021-08-12.jpg
您还可以用lambda替换加入组的值:
lambda
>>> import re >>> string = 'blablablabla_20210812.jpg' >>> re.sub('(\d{4})(\d{2})(\d{2})', lambda m: '-'.join(g for g in m.groups()), string) #output: 'blablablabla_2021-08-12.jpg'
您可以将
string[-12:][:-4][:4]
压缩为string[-12:-8]
以使其看起来更干净。代码如下所示:或者,如果您想要文本:
一种解决方案是使用正则表达式和^{} :
印刷品:
您还可以用
lambda
替换加入组的值:相关问题 更多 >
编程相关推荐