使用pathlib模块统计当前目录最后被修改的文件
问题起因:在复习Python新版课程的第54讲的内容时,其中有一道题是这样的:利用pathlib模块找出当前目录中最后被修改的内容我先利用小甲鱼老师的代码试了一下,结果却显示最后被修改的文件是源代码文件,这显然不是我想要的结果,于是我模仿
了下一节课的方法:使用__file__获取相应源代码的路径,但还是没有得到理想的结果,请问一下问题到底出在哪里,该怎么解决咧? 贴一下代码 本帖最后由 hrpzcf 于 2023-3-5 18:15 编辑
用 each 和 __file__ 对比是不成的,因为 each 是 Path 对象,__file__ 是 str 对象。就算两者都是 str 类型也不应该用 == 判断是否同一文件,因为路径大小写等格式不同,有可能实际同一个文件有不同路径写法。
应该是这样:each.samefile(__file__) 判断是否同一文件 from pathlib import Path
import os
os.chdir('D:/pyTest')
p = Path.cwd()
files =
# lookup the latest modified file
latest_m_file = max(files, key=lambda f: f.stat().st_mtime)
print(latest_m_file)# 注意它是Path构造出来的一个实例对象
# except this script file itself
print(__file__) # __file__只是该文件路径的字符串,且分隔符在不同系统下有所不同
this_file = Path(__file__)
print(this_file)
print(this_file == latest_m_file)# 都是Path的实例就可以这样比较判断了
# so, like this
files =
latest_i_wanted = max(files, key=lambda f: f.stat().st_mtime)
print(latest_i_wanted)
页:
[1]