获取名称中包含日期的文件夹中的文件列表
Get the list of files inside a folder that have a date inside their name
我有一个文件夹,里面有一些文件,是这样调用的:
file_1_20200101235900
file_2_20200101235900
file_3_20200101235900
file_4_20200109999999
我想获得一个列表,其中包含名称中包含 'YYYYMMDDHHMMSS'
格式日期的所有文件。所以在这个例子中,我想获取除 file_4_20200109999999
之外的所有文件,因为其中的日期不存在。
预期输出:
list =[file_1_20200101235900, file_2_20200101235900, file_3_20200101235900]
您可以使用 os.listdir
to iterate over the files and a custom function based on datetime.datetime
来验证日期。
使用真实日期解析器是确保计算所有细节以确定日期是否有效的最佳选择。
def valid_date(date, fmt='%Y%m%d%H%M%S'):
from datetime import datetime
try:
datetime.strptime(date, fmt)
return True
except ValueError:
return False
import os
path = '/path/to/your/files/'
files = [f for f in os.listdir(path) if valid_date(f.rpartition('_')[-1])]
输出:
['file_2_20200101235900', 'file_3_20200101235900', 'file_1_20200101235900']
我有一个文件夹,里面有一些文件,是这样调用的:
file_1_20200101235900
file_2_20200101235900
file_3_20200101235900
file_4_20200109999999
我想获得一个列表,其中包含名称中包含 'YYYYMMDDHHMMSS'
格式日期的所有文件。所以在这个例子中,我想获取除 file_4_20200109999999
之外的所有文件,因为其中的日期不存在。
预期输出:
list =[file_1_20200101235900, file_2_20200101235900, file_3_20200101235900]
您可以使用 os.listdir
to iterate over the files and a custom function based on datetime.datetime
来验证日期。
使用真实日期解析器是确保计算所有细节以确定日期是否有效的最佳选择。
def valid_date(date, fmt='%Y%m%d%H%M%S'):
from datetime import datetime
try:
datetime.strptime(date, fmt)
return True
except ValueError:
return False
import os
path = '/path/to/your/files/'
files = [f for f in os.listdir(path) if valid_date(f.rpartition('_')[-1])]
输出:
['file_2_20200101235900', 'file_3_20200101235900', 'file_1_20200101235900']