【发布时间】:2018-10-22 00:27:16
【问题描述】:
我的列表中有一些具有不同扩展名的文件名。
file_name_list = ['ABDCD Pattern Raw Data 1.4.2016.xlsx',
'Jack Raw Data 1.2.2016.xlsx',
'Farmers holdings 1.1.2016.xlsx',
'Anne Raw Data 1.3.2016.csv',
'120 Brewers 5-2-2018.txt']
我只想从这些文件名中删除日期并将它们添加到新列表中。就这样,
['abdcd pattern raw data.xlsx',
'jack raw data.xlsx',
'farmers holdings.xlsx',
'anne raw data.csv',
'120 brewers.txt']
我用这个post 厌倦了以下,我把数字去掉了,但不是我想要的。
import re
OutputList = []
for i in file_name_list:
lower_character = i.lower()
OutputList.append(re.sub('[0-9.-]', '', lower_character))
输出,
['abdcd pattern raw data xlsx',
'jack raw data xlsx',
'farmers holdings xlsx',
'anne raw data csv',
' brewers txt']
如果你仔细观察,它会从 120 Brewers 中取出 120。我怎样才能达到我想要的?我正在使用python 3。任何建议都会很好。
【问题讨论】:
-
我们可以假设日期都是 X.X.X 或 X-X-X 格式(或点和破折号的任意组合)吗?
-
可能有很多极端案例......是否有任何公司名称以数字结尾,即
brewers 120 5-2-2018.txt?日期是否总是出现在末尾,在扩展之前? -
@Guillaume Ruchot,它是两者的结合。
-
@user 好问题,是的,名字后面也可以有数字。基本上,如果我能在扩展之前找到
.或-格式的日期,那就太好了。
标签: python regex python-3.x list