【问题标题】:What is wrong with my Code? (Reading File Information From Another Directory)我的代码有什么问题? (从另一个目录读取文件信息)
【发布时间】:2019-08-01 12:10:19
【问题描述】:

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

我是 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'

【问题讨论】:

    标签: python filepath python-os


    【解决方案1】:

    我认为你的路径有问题。

    os.path.getatime(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)
    

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

    【讨论】:

      【解决方案2】:

      os.listdir 在您尝试使用 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)))
          ...
      

      【讨论】:

        猜你喜欢
        • 2016-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多