gpt4 book ai didi

python - 过滤并列出特定文件名

转载 作者:行者123 更新时间:2023-12-04 21:47:12 25 4
gpt4 key购买 nike

我通过编写以下代码生成了一个文件列表:

files = [file for file in Path(main_directory).rglob('*filename*v*.xlsx')]

它检索文件列表:
files[0] = .../2018/filename 2018 v 1.xlsx
files[1] = .../2019/filename 2019 v 5.xlsx
files[2] = .../2020/filename 2020 v 4.xlsx
files[3] = .../2020/filename 2020 v 5.xlsx
...
files[13] = .../2020/filename 2020 v 10.xlsx

我该怎么做才能让输出只给我最大的 v每年,所以我会有这样的输出?
files[0] = .../2018/filename 2018 v 1.xlsx
files[1] = .../2019/filename 2019 v 5.xlsx
files[2] = .../2020/filename 2020 v 10.xlsx

我必须得到最大的 v这并不意味着它具有最新的修改日期,因此我无法使用该功能。
我试过 os.pathre但我无处可去。

最佳答案

假设相同年份的文件名在一起,你可以试试这个。

x=["2018/filename 2018 v 1.xlsx","2019/filename 2019 v 5.xlsx","2020/filename 2020 v 4.xlsx","2020/filename 2020 v 5.xlsx","2020/filename 2020 v 10.xlsx"]
from itertools import groupby
import re
for i,j in groupby(x, lambda x:int(re.findall(r"(?<=filename )\d+", x)[0])):
print max(j, key=lambda x:int(re.findall(r"(?<=v )\d+(?=\.xlsx)", x)[0]))

输出:
2018/filename 2018 v 1.xlsx
2019/filename 2019 v 5.xlsx
2020/filename 2020 v 10.xlsx

关于python - 过滤并列出特定文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62182435/

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