一、基础操作
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文件。