使用python检查文件夹中所有最后修改的文件的程序?
Posted
技术标签:
【中文标题】使用python检查文件夹中所有最后修改的文件的程序?【英文标题】:Program to check all last modified files in a folder using python? 【发布时间】:2021-04-22 10:42:44 【问题描述】:import glob
import os
import time
Path = 'Aabmatica/*'#Folder path
list_of_files = glob.glob(Path) # * Name of the folder in which all files exist
latest_file = max(list_of_files, key=os.path.getmtime)
print()
print("last modified/added file is:",end=" ")
print(latest_file)
print()
modification_time = os.path.getmtime(latest_file)
local_time = time.ctime(modification_time)
print("modified time: ",local_time)
我制作了一个 python 程序,它给我一个文件夹中最后修改文件的名称:-
这个程序运行良好,但问题是,如果我放置新文件或者我正在编辑文件夹中的任何文件,那么它会给我正确的输出,但是如果我将任何文件复制到文件夹中,那么我没有得到任何输出。
以及如何使用此程序显示文件夹中所有最后修改的文件。
5.因此,如果我将任何文件复制到文件夹中,则该程序基本上存在两个问题,而不是我没有得到文件名,并且我无法显示文件夹中所有最后修改的文件。
【问题讨论】:
哪个操作系统?我发现您的代码可以在 Linux 上运行。 我正在使用 Windows,当我在文件夹中创建/编辑新文件时,此代码有效,但如果我将任何文件复制到文件夹中,则它不会将文件名显示为最近添加的文件或复制文件。 另外,max()
将根据排序键选择最新的文件,但如果有相同的键,它将选择具有最大字母名称的文件。
实际上,不管键是什么,先生,它都在工作,但问题是,如果我剪切粘贴任何文件或将任何文件复制到文件夹中,那么我的代码不会显示这个复制的文件,但如果我让一个新文件或编辑文件夹中的现有文件然后它向我显示正确的答案,我想要的是文件夹中的新更改,那么它必须显示更改
【参考方案1】:
在 Windows 中,文件的副本可能具有新的创建时间。您可以查看os.path.getctime()
以检查文件副本的创建时间。
如果按预期工作,那么您可以在 max()
的密钥中包含 os.path.getctime()
作为附加检查。
def latest_change(filename):
return max(os.path.getmtime(filename), os.path.getctime(filename))
latest_file = max(list_of_files, key=latest_change)
key 函数只是抓取修改或创建时间最长的那个,然后使用那个最长的时间作为 key。
【讨论】:
好的先生,让我试试看,但如果我想在 30 分钟内显示所有修改怎么办??? 你的意思是显示最近30分钟内修改过的所有文件?以tje当前时间小于30分钟为参考时间,找出所有ctime或mtime大于参考时间的文件. 是的,先生,您的代码正在运行,即使我粘贴的代码也按照您上面所说的那样运行 先生,我无法使这种情况发挥作用 您的原始问题已得到解答。如果您对此感到满意,那么您可能会赞成这个答案并将其标记为接受。关于 30 分钟条件,请查看最近的类似问题:***.com/questions/65711707/…。如果这对您没有帮助,请提出一个新问题。以上是关于使用python检查文件夹中所有最后修改的文件的程序?的主要内容,如果未能解决你的问题,请参考以下文章