gpt4 book ai didi

python - 如何比较python中两个文件的修改日期?

转载 作者:太空狗 更新时间:2023-10-29 17:13:23 26 4
gpt4 key购买 nike

我正在创建一个 python 脚本,它将逐行访问文本文件(例如 File.txt)中的每一行,然后在系统目录中搜索相应的“.py”和“.txt”文件。例如,如果从“File.txt”访问“COPY”(第一行),则将搜索“COPY.py”和“COPY.txt”。如果找到这两个文件,则将比较它们的修改日期。代码没有语法错误,但我得到了错误的输出。

我的 Python 代码是:

for line in fileinput.input(r'D:\Python_Programs\File.txt'):
line = line[0:-1]
sc = ''.join((line,'.py'))
lo = ''.join((line,'.txt'))
for root, dirs, files in os.walk(r'D:\txt and py'):
if sc in files:
pytime = time.ctime(os.path.getmtime(os.path.join(root, sc)))
print(sc, ' :', pytime)
for root, dirs, files in os.walk(root):
if txt in files:
txttime = time.ctime(os.path.getmtime(os.path.join(root, txt)))
print(txt, ' :', txttime)
if (txttime > pytime):
print('PASS', '\n')
else:
print('FAIL', '\n')

输出:

COPY.py     : Mon Aug 27 10:50:06 2012
COPY.txt : Mon Feb 04 11:05:31 2013
PASS #Expected = PASS

COPY2.py : Fri Feb 08 16:34:43 2013
COPY2.txt : Sat Sep 22 14:19:32 2012
PASS #Expected = FAIL

COPY3.py : Fri Feb 08 16:34:53 2013
COPY3.txt : Mon Sep 24 00:50:07 2012
PASS #Expected = FAIL

我不明白为什么“COPY2”和“COPY3”给出“PASS”。可能是我做错了。以及在代码中将比较更改为 “if (txttime < pytime)”。所有结果在输出中都显示为“FAIL”。

最佳答案

time.ctime()将时间格式化为字符串,因此您要比较字符串 "Fri Feb 08 16:34:43 2013""Sat Sep 22 14:19:32 2012" 文字。只是不要那样做,比较 getmtime() 直接给你的 float:

pytime = os.path.getmtime(os.path.join(root, sc))
# ...
txttime = os.path.getmtime(os.path.join(root, txt))
# ...
if (txttime > pytime):
# ...

关于python - 如何比较python中两个文件的修改日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14779775/

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