使用os.walk读取文件文件、os、walk

2023-09-03 14:24:04 作者:嘴角的樱桃汁

我正在尝试访问主目录下子目录中的根文件。为此,我使用os.walk()。我能够成功地找到文件名,并能够将其存储在列表中。但是,当我尝试使用open(filename, 'r')打开这些文件时,我收到一个错误,告诉我没有这样的文件或目录存在。

我认为这里的问题在于我只访问'names'而不是实际的文件本身。我的代码如下所示:

list_of_files = {}
for (dirpath, dirnames, filenames) in 
os.walk("C:\Users\Akarshkb\Desktop\cs361hw\HMP_Dataset"):
    for filename in filenames:
        if filename.endswith('.txt'): 
            list_of_files[filename] = os.sep.join([dirpath, filename])
            file = open(filename, 'r')
            file.read()
            file.close()
print (list_of_files)

我收到以下错误:

        `FileNotFoundError                         Traceback (most recent call 
    last)
    <ipython-input-40-10ae3e92446a> in <module>()
          4         if filename.endswith('.txt'):
          5             list_of_files[filename] = os.sep.join([dirpath, 
    filename])
    ----> 6             file = open(filename, 'r')
          7             file.read()
          8             file.close()

    FileNotFoundError: [Errno 2] No such file or directory: 'Accelerometer-2011- 
   04-11-13-28-18-brush_teeth-f1.txt'`
Python管理文件神器 os.walk

如有任何帮助,将不胜感激。

推荐答案

您不应忽略dirpath值。

试试:

        file = open(os.path.join(dirpath, filename), 'r')