gpt4 book ai didi

python - 如何找到目录中添加的最后三个文件

转载 作者:行者123 更新时间:2023-12-05 05:38:07 25 4
gpt4 key购买 nike

我正在使用此代码查找最后添加的 csv 文件,但找不到最后添加的 3 个文件。我可以删除最后一个文件,然后再次找到最大值,但我认为它太长了。你能帮我找到解决办法吗?我只需要找到目录中添加的最后 3 个 csv 文件。

import pandas as pd
import csv
import os
import zipfile

t=[]

j_csvs="path2"

#Find all csv files directories and collect them within t
d = os.path.join(j_csvs)
for root,dirs,files in os.walk(d):
for file in files:
if file.endswith(".csv"):
p=os.path.abspath(os.path.join(root, file))
t.append(p)
else: "DoNothing"

latest_f_j = max(t, key=os.path.getctime)
df=pd.read_csv(latest_f_j)
df

最佳答案

使用带有回调函数的sorted来推断排序关系,一些可能性:

  • 使用 os.path.getctime 作为系统的 ctime(它取决于系统,参见 doc)
  • 上次修改时间用os.path.getmtime
  • 使用 os.path.getatime 作为上次访问的时间。

reverse=True 参数传递给降序结果,然后切片。

import os.path

def last_newest_files(path, ref_ext='csv', amount=3):
# return files ordered by newest to oldest

def f_conditions(path):
# check by file and extension
_, ext = os.path.splitext(path) # ext start with ".", ie ".csv"
return os.path.isfile(path) and ext.lstrip('.') == ref_ext

# apply conditions
filtered_files = filter(f_conditions, (os.path.join(path, basename) for basename in os.listdir(path)))

# get the newest
return sorted(filtered_files, key=os.path.getctime, reverse=True)[:amount]


path_dir = '.'
ext = 'csv'
last_n_files = 3

print(*last_newest_files(path_dir, ext, last_n_files), sep='\n')

关于python - 如何找到目录中添加的最后三个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73015151/

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