我的代码旨在显示最后一个打开的文件,即使不是最后一个打开的文件,输出始终是一个特殊文件。另外,如果我的代码与我要搜索的数据不在同一文件夹中。
我是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.path.getatime(file)
返回 file 的最后一次访问时间。因此,当您致电时:
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)
它将更改您当前的工作目录,并且应该起作用。
os.listdir
尝试使用os.path.getatime
时仅返回文件名,它将检查当前的工作目录中的文件名称,但找不到文件。尝试使用os.path.join(o,list[list_length-1])
您是Python的新鲜笔记:
- 列表是一个关键字,您可能应该选择另一个变量名称以避免问题
- 在遍历列表时,您无需跟踪python中的索引。它为您处理。您可以做类似: 的事情
for element in list:
print((os.path.getatime(element)))
...