2024-09-29 19:07:35 发布
网友
假设我有这样一个文件列表:
我知道如何使用max(list_of_files, key=os.path.getmtime)读取最新的文件,但它可能是最后创建的任何文件
max(list_of_files, key=os.path.getmtime)
我想读取名称中包含“name”的文件,该文件是上次创建的(例如“def_name.txt”)
在python中如何实现这一点
非常感谢
你的代码是正确的。您可以使用max(list_of_files, key=os.path.getmtime)。您将需要一个文件列表。要获取文件列表
这样做:
max([file for file in list_of_files if 'name' in file], key=os.path.getmtime)
假设运行bash命令:
bash
$ ch /tmp $ touch abc_name.txt def_name.txt ghj_name.txt abcdefghj.txt xyz.txt
从Python中,您可以使用pathlib对文件所在的目录进行全局搜索,并可以很好地控制您正在测试的时间元素
from pathlib import Path p=Path('/tmp') max([fn for fn in p.glob('*.txt') if 'name' in str(fn)], key=lambda f: f.stat().st_mtime) # /tmp/ghj_name.txt
您还可以更改glob,以便只返回包含name的文件:
name
max([fn for fn in p.glob('*name*.txt')], key=lambda f: f.stat().st_mtime) # same result
您可以使用os.glob(pattern)获得与模式匹配的文件列表,其中模式是unix样式的shell模式。在您的情况下,它将是'*name*'
os.glob(pattern)
'*name*'
一旦您有了这个列表,您就可以使用max函数来选择最新的列表
max
有关glob的文档可以在here找到
glob
你的代码是正确的。您可以使用
max(list_of_files, key=os.path.getmtime)
。您将需要一个文件列表。要获取文件列表这样做:
假设运行
bash
命令:从Python中,您可以使用pathlib对文件所在的目录进行全局搜索,并可以很好地控制您正在测试的时间元素
您还可以更改glob,以便只返回包含
name
的文件:您可以使用
os.glob(pattern)
获得与模式匹配的文件列表,其中模式是unix样式的shell模式。在您的情况下,它将是'*name*'
一旦您有了这个列表,您就可以使用
max
函数来选择最新的列表有关
glob
的文档可以在here找到相关问题 更多 >
编程相关推荐