您的位置:

Python代码实现:列出操作系统中的文件和目录

一、基础操作

import os

#获取当前目录
current_path = os.getcwd()
print("当前目录为:", current_path)

#获取目录下所有文件和文件夹
all_files = os.listdir(current_path)  
for file in all_files:
    print(file)

Python内置了os模块,可以通过该模块实现对操作系统的基本操作,包括访问文件和目录等。在这个例子中,我们首先通过os.getcwd()方法获取当前目录,并利用os.listdir()方法获取当前目录下所有的文件和文件夹,然后使用for循环逐个打印出来。

二、遍历子目录

import os

#遍历当前目录及其子目录下的所有文件和文件夹
def list_files(start_path):
    for root, dirs, files in os.walk(start_path):
        for file in files:
            print(os.path.join(root, file))

list_files(os.getcwd())

如果需要遍历指定目录下的所有子目录,上述代码需要做一些修改。这里通过定义一个函数list_files来实现目录遍历。os.walk()方法可以很方便地实现遍历目录。os.walk()返回值是一个三元turple,分别代表当前遍历的目录,当前目录下的所有子目录,以及当前目录下的所有文件。这里通过for循环嵌套打印出所有文件的路径。

三、根据文件类型过滤

import os

#根据文件类型过滤
def list_files(start_path, extension):
    for root, dirs, files in os.walk(start_path):
        for file in files:
            if file.endswith(extension):
                    print(os.path.join(root, file))

list_files(os.getcwd(), '.txt')

通过在os.walk()函数返回值中加入一个过滤条件,可以筛选出我们所需要的文件。这里通过定义extension来作为文件类型参数,然后在日志中增加一个条件判断if file.endswith(extension),来筛选.txt文件。

四、多路径遍历

import os

#多路径遍历
def list_files(paths, extension):
    for path in paths:
        for root, dirs, files in os.walk(path):
            for file in files:
                if file.endswith(extension):
                    print(os.path.join(root, file))

list_files([r'C:\temp', r'D:\documents'], '.txt')

上述代码中我们只遍历了一个目录,如果需要多路径遍历的话,只需要将目录列表作为参数传入即可。这里把所有路径放在一个list中,遍历其中所有目录下的所有.txt文件。