我在S3存储桶的某个文件夹中有很多csv文件,我编写了一些代码来创建该文件夹中所有文件名的列表。
列表示例如下:
file_list = ['live/live_raw/july18/xxxx_yyyyyyyyy_zzzzzzz_20180730_MET40.txt',
'live/live_raw/july18/xxxx_yyyyyyyyy_zzzzzzz__20180730_MET41.txt',
'live/live_raw/july18/xxxx_yyyyyyyyy_zzzzzzz__20180731_MET42.txt',
'live/live_raw/july18/xxxx_yyyyyyyyy_zzzzzzz__20180731_MET43.txt',
'live/live_raw/july18/xxxx_yyyyyyyyy_zzzzzzz__20170731_MET44.txt']
我想为唯一的日期创建新的子列表,如下所示:
matching_("%Y%m%d") = [s for s in file_list if strftime("%Y%m%d") in s]
结果:
matching_20180730=
['live/live_raw/july18/xxxx_yyyyyyyyy_zzzzzzz_20180730_MET40.txt',
'live/live_raw/july18/xxxx_yyyyyyyyy_zzzzzzz__20180730_MET41.txt']
matching_20180731=
['live/live_raw/july18/xxxx_yyyyyyyyy_zzzzzzz__20180731_MET42.txt',
'live/live_raw/july18/xxxx_yyyyyyyyy_zzzzzzz__20180731_MET43.txt']
matching_20170731=
['live/live_raw/july18/xxxx_yyyyyyyyy_zzzzzzz__20170731_MET44.txt']
您将如何去做?我可以使用以下代码匹配特定的字符串,但不能匹配特定格式的字符串(或日期时间):
import re
new_list = [x for x in file_list if re.search('20170731', x)]
for item in new_list:
print(item)