使用os.walk从dir及其子目录中获取所有文件

时间:2018-06-04 06:47:33

标签: python os.walk

我正在编写一个python脚本,你可以给它一个驱动器或文件夹,然后遍历驱动器或文件夹中的每个图像并将它们全部移动到一个文件夹中。

我的问题是使用os.walk,它不会自动打开子目录。举个例子,假设我选择了E:驱动器进行扫描。 E:驱动文件结构;

E:
   + Folder1
       - file.png
       - file2.png
   - files.jpg

我的脚本将检测到的唯一文件是files.jpg,因为其他文件嵌套在一个子目录中,os.walk无法打开并检查文件。

这是我现在正在使用的代码;

# For each file in the drive
    for folders, sub_folders, files in os.walk(drive):
        # For each name in the files
        for filename in files:
            if filename == drive + "\\ImageSorter\\":
                continue

            file_name = os.path.splitext(filename)[0]
            extension = os.path.splitext(filename)[1]

有没有办法让os.walk遍历驱动器上的所有子目录,而不仅仅是第一个文件夹?

1 个答案:

答案 0 :(得分:0)

试试此代码

import os
for root, dirs, files in os.walk("."):
    path = root.split(os.sep)
    print((len(path) - 1) * '---', os.path.basename(root))
    for file in files:
        print(len(path) * '---', file)