python - 使用 os.walk 读取文件

标签 python file directory os.walk subdirectory

<分区>

我正在尝试访问位于主目录子目录中的文件。为此,我使用了 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'`

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

最佳答案

您不应该忽略 dirpath 值。

试试这个:

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

关于python - 使用 os.walk 读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50239990/

相关文章:

python - 在python中导入文本文件

java - 在Java中如何计算目录中具有相同文件扩展名的文件数量?

ubuntu - DocumentRoot 没有改变,从 Apache2 2.2.22 更新到 2.4.7

select - 如何将所选目录的路径获取到渲染器进程中

python - Python-将任何/所有潜在的错误写入文件,而没有定义可能出错的部分?

python - 无法在 Windows 上使用 MingW 编译 Cython

python - 通过 pythonnet 从 Python 使用 C# 程序集

支持 PHP Linux 安全模式的文件检查

c++ - 为什么仅在读取 vector 中的文件名时将文件文件名设置为点而不是?

python - 使用 Pycharm,一旦代码运行,我就不会得到任何输出,只是进程已完成,退出代码为 0