gpt4 book ai didi

Python正则表达式查找目录中的最新文件

转载 作者:太空宇宙 更新时间:2023-11-03 16:19:17 24 4
gpt4 key购买 nike

我有一个目录,其中包含以下文件用于示例目的。

Directory:
ERROR_AM_INMAG_Export_2016-07-25.csv
AM_INMAG_Export_2016-07-26_done.csv
ERROR_AM_INMAG_Export_2016-07-27.csv
AM_INMAG_Export_2016-07-28_done.csv
AM_INMAG_Export_2016-07-29.csv
file1
file2
fileN

在这里,我如何检索以“AM_INMAG_Export_”开头的文件,并且它应该使用Python具有最新的时间戳。例如:“AM_INMAG_Export_2016-07-29.csv”是我要检索的文件。但是“fileN”是目录中最新修改的文​​件。

最佳答案

过滤与您所需前缀匹配的文件,然后排序。

>>> files = """ERROR_AM_INMAG_Export_2016-07-25.csv
... AM_INMAG_Export_2016-07-26_done.csv
... ERROR_AM_INMAG_Export_2016-07-27.csv
... AM_INMAG_Export_2016-07-28_done.csv
... AM_INMAG_Export_2016-07-29.csv
... file1
... file2
... fileN""".split('\n')
>>> files
['ERROR_AM_INMAG_Export_2016-07-25.csv', 'AM_INMAG_Export_2016-07-26_done.csv ', 'ERROR_AM_INMAG_Export_2016-07-27.csv', 'AM_INMAG_Export_2016-07-28_done.csv ', 'AM_INMAG_Export_2016-07-29.csv', 'file1', 'file2', 'fileN']
>>> filtered_files = [ x for x in files if x.startswith('AM_INMAG_Export_')]
>>> sorted_files = sorted(filtered_files,reverse=True)
>>> sorted_files[0]
'AM_INMAG_Export_2016-07-29.csv'
<小时/>

更新

使用正则表达式过滤文件名,然后排序。

>>> import re
>>>
>>> files = [
... 'ERROR_AM_INMAG_Export_2016-07-25.csv',
... 'AM_INMAG_Export_2016-07-26_done.csv',
... 'ERROR_AM_INMAG_Export_2016-07-27.csv',
... 'AM_INMAG_Export_2016-07-28_done.csv',
... 'AM_INMAG_Export_2016-07-21.csv',
... 'AM_INMAG_Export_2016-07-25.csv',
... 'AM_INMAG_Export_2016-07-29.csv',
... 'file1',
... 'file2',
... 'fileN'
... ]
>>>
>>> file_re = re.compile(r'^AM_INMAG_Export_\d{4}-\d{2}-\d{2}.csv$')
>>> filtered_files = [ x for x in files if file_re.match(x)]
>>> sorted_files = sorted(filtered_files,reverse=True)
>>> sorted_files[0]
'AM_INMAG_Export_2016-07-29.csv'

关于Python正则表达式查找目录中的最新文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38654202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com