gpt4 book ai didi

python - 在文件夹中搜索具有特定文件名的多个文件,并选择最近的文件,或具有最大数值的文件名

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

在这里完全是初学者,我正在编写一个程序,该程序在文件夹中搜索特定字符串作为文件名,该文件夹只有 PDF。
对于我搜索的每个文件名,通常它会返回多个文件,如下所示:

200031-2018-252-20190828102708.pdf
200031-2018-252-20190828102735.pdf
但我只对打开最近创建/修改的文件感兴趣。在这种护理中,它将是“200031-2018-252-20190828102735.pdf”
所以我可以通过两种方式对此进行排序:
1,要么我选择最近的文件,要么
2、选择数值最大的文件。
现在我已经写到可以返回具有相同文件名的文件列表的代码,但是如何选择并打开最新的文件?
以下是我到目前为止编写的代码:
import openpyxl
import pyperclip
import glob
import PyPDF2
import os
from pathlib import Path
import fitz

#define year
year='-2018'

#change directory of folder of where the documents are

os.chdir('G:\\Current Users\\Research analyst project management\\Tim\\PCC KPIs\\automate\\New folder')
#open excel file
wb=openpyxl.load_workbook('Grad_Rates_Audit_2017_New_vs_Old.xlsx')
#select sheet
sheet = wb["Campus"]


#assign variable to cell value
cell_value=str(sheet.cell(8,1).value)

#define search value
search_value=cell_value+year

#search for file name in folder
dir_path = Path('G:/Current Users/Research analyst project management/Tim/PCC KPIs/automate/New folder')
pdf_files = dir_path.glob('*.pdf')

for pdf_file in pdf_files:
if search_value in pdf_file.name:
print (pdf_file.name)
'print (pdf_file.name)' 返回以下结果:
200031-2018-252-20190828102708.pdf
200031-2018-252-20190828102735.pdf

最佳答案

您可以使用 max函数并传递给 key参数 文件名的一部分,只包含时间戳。要实现这一点,您可以使用 .stem函数,它使用从 glob 返回的路径并返回不带后缀的最终路径组件,然后将剩余的字符串切片以仅获取时间戳部分。

...
#search for file name in folder
dir_path = Path('G:/Current Users/Research analyst project management/Tim/PCC KPIs/automate/New folder')

list_of_files = dir_path.glob(f'*{search_value}*.pdf')
mostRecent = max(list_of_files, key=lambda fl: fl.stem[-13:])

关于python - 在文件夹中搜索具有特定文件名的多个文件,并选择最近的文件,或具有最大数值的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63182683/

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