import os
import time
torrent_folder = os.listdir(r'C:\users\chris\desktop\torrents')
for files in torrent_folder:
if files.endswith(".torrent"):
print(files + time.ctime(os.path.getatime(files)))
运行此脚本时出现文件未找到错误。
FileNotFoundError: [WinError 2] The system cannot find the file specified: 'TORRENT NAME.torrent
'
一切正常,直到time.ctime(os.path.getatime(files)
添加到混合中。
我希望脚本能够显示' torrent name' '日期最后一次修改' 对于文件夹中的每个文件。
为什么引用文件的错误,按名称说它无法找到,我该如何解决?
答案 0 :(得分:5)
您的files
变量仅为文件名,不是完整路径。因此,它将在当前工作目录中查找它,而不是listdir
找到它的位置。
以下代码将使用完整路径名:
import os
import time
folder = r'C:\users\chris\desktop\torrent'
files = os.listdir(folder)
for file in files:
if file.endswith(".torrent"):
print(file + " " + time.ctime(os.path.getatime(os.path.join(folder,file))))
os.path.join()
合并folder
和file
,为您提供完整的路径规范。例如,os.path.join("/temp","junk.txt")
会给你/temp/junk.txt
(在UNIX下)。
然后它以与您尝试仅使用file
变量完全相同的方式使用它,获取最后的访问时间并以可读的方式对其进行格式化。
答案 1 :(得分:3)
它需要绝对path。
os.path.getatime(路径)
返回上次访问路径的时间。
所以,open('xxx.torrent')
将不起作用。
相反,请使用open('C:\users\chris\desktop\torrents\xxx.torrent')
import os
import time
torrent_folder = os.listdir(r'C:\users\chris\desktop\torrents')
for files in torrent_folder:
if files.endswith(".torrent"):
filepath = os.path.join('C:\users\chris\desktop\torrents',files)
print(files + time.ctime(os.path.getatime(filepath)))