我的代码有什么问题? (从另一个目录读取文件信息)

What is wrong with my Code? (Reading File Information From Another Directory)

我的代码旨在显示最后打开的文件,即使它不是最后打开的文件,也总是输出一个特殊文件。如果我的代码与我正在搜索的数据不在同一个文件夹中,我的代码也不起作用。

我是 python 的新手,这实际上是我用它创建的第一个程序。我想让我的生活更轻松,并制作一个应该自动调试我的代码的小终端应用程序。我的第一步是创建一个代码来显示上次打开的项目,因为如果我要放置我的项目的文件夹已满,将很难搜索我的项目名称。所以我想出了这个:

import os

z = 3
o = r"/home/myname/Dokumente/Python"
list = os.listdir(o)
list_length = len(list)
list_time = []
list_low = []

print(list)

while list_length != 0:
    list_length -= 1
    print((os.path.getatime(list[list_length-1])))
    list_time.append((os.path.getatime(list[list_length-1])))
    print(list_time)
else:
    list_time.reverse()
    recent = list_time.index(min(list_time))


print(recent)
print("recently opened")
print(list[recent])
print(list)

关于我的第二个问题(不在同一文件夹中时无法正常工作)这是终端的输出:

['Hello_World.py', 'Python_Debugger_Kopie.py']
Traceback (most recent call last):
  File "Python_Debugger.py", line 14, in <module>
    print((os.path.getatime(list[list_length-1])))
  File "/usr/lib/python3.7/genericpath.py", line 60, in getatime
    return os.stat(filename).st_atime
FileNotFoundError: [Errno 2] No such file or directory: 'Hello_World.py'

os.listdir returns 当您尝试使用 os.path.getatime 只有文件名时,它会检查您当前的工作目录中的文件名,但没有找到该文件。尝试添加类似 os.path.join(o,list[list_length-1])

的路径

由于您是 python 的新手,还有一些额外的注意事项:

  1. list是一个关键字,你应该选择另一个变量名来避免问题
  2. 在遍历列表时,您不需要跟踪 python 中的索引。它为您处理。你可以这样做:
for element in list:
    print((os.path.getatime(element)))
    ...

我认为你的路径有问题。

os.path.getatime(file)

Returns 上次访问 文件的时间 。 所以当你打电话时:

os.path.getatime(list[list_length-1])

Python 正在尝试查找文件 'Hello_World.py'。 但是,此文件位于您的 "/home/myname/Dokumente/Python" 目录中。 所以我认为你可以在文件的开头写这个:

path_dir = '/home/myname/Dokumente/Python'
os.chdir(path_dir)

它会改变你当前的工作目录,它应该可以工作。