文件未找到错误python

时间:2015-03-20 05:09:51

标签: python

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' '日期最后一次修改' 对于文件夹中的每个文件。

为什么引用文件的错误,按名称说它无法找到,我该如何解决?

2 个答案:

答案 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()合并folderfile,为您提供完整的路径规范。例如,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)))