我的代码有什么问题? (从另一个目录读取文件信息)
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 的新手,还有一些额外的注意事项:
- list是一个关键字,你应该选择另一个变量名来避免问题
- 在遍历列表时,您不需要跟踪 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)
它会改变你当前的工作目录,它应该可以工作。
我的代码旨在显示最后打开的文件,即使它不是最后打开的文件,也总是输出一个特殊文件。如果我的代码与我正在搜索的数据不在同一个文件夹中,我的代码也不起作用。
我是 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 的新手,还有一些额外的注意事项:
- list是一个关键字,你应该选择另一个变量名来避免问题
- 在遍历列表时,您不需要跟踪 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)
它会改变你当前的工作目录,它应该可以工作。