gpt4 book ai didi

python - 如何获取目录中最后修改的文件?

转载 作者:行者123 更新时间:2023-12-04 14:49:15 27 4
gpt4 key购买 nike

我想用 python 获取最近 1 小时修改/创建的文件。我试过这段代码,但它只得到最后一个创建的文件。如果我创建了 10 个文件,它只显示最后一个。如何获取最近 1 小时创建的文件?

import glob
import os

list_of_files = glob.glob('c://*')
latest_file = max(list_of_files, key=os.path.getctime)
print(latest_file)

最佳答案

你基本上可以这样做:

  • 获取文件列表
  • 获取每个人的时间(也请检查 os.path.getmtime() 以获取更新)
  • 使用 datetime模块以获取要与(即 1h)进行比较的值
  • 比较

  • 为此,我使用字典以紧凑的格式存储路径和时间戳。然后,您可以按其值( dict.values() )(这是一个浮点数,时间戳)对字典进行排序,然后您将获得在 1 小时内创建的已排序的最新文件。 (例如通过 sorted(...) 函数):
    import os
    import glob
    from datetime import datetime, timedelta

    hour_files = {
    key: val for key, val in {
    path: os.path.getctime(path)
    for path in glob.glob("./*")
    }.items()
    if datetime.fromtimestamp(val) >= datetime.now() - timedelta(hours=1)
    }
    或者,没有理解:
    files = glob.glob("./*")
    times = {}
    for path in files:
    times[path] = os.path.getctime(path)

    hour_files = {}
    for key, val in times.items():
    if datetime.fromtimestamp(val) < datetime.now() - timedelta(hours=1):
    continue
    hour_files[key] = val
    或者,也许你的文件夹只是一团糟,你有太多的文件。在这种情况下,逐步接近它:
    hour_files = {}
    for file in glob.glob("./*"):
    timestamp = os.path.getctime(file)
    if datetime.fromtimestamp(timestamp) < datetime.now() - timedelta(hours=1):
    continue
    hour_files[file] = timestamp

    关于python - 如何获取目录中最后修改的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69333852/

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