一、os.listdir()函数介绍
os.listdir(path='.')是Python标准库中的一个函数,用于返回指定路径下的所有文件和文件夹的名称列表。如果没有指定路径,默认为当前工作目录。
其返回值是一个包含文件和文件夹名称的列表,列表中的每一项都是字符串类型。
比如,在当前工作目录下有以下文件和子文件夹:
folder1/ folder2/ file1.txt file2.jpg
那么使用os.listdir()函数返回的列表为:
['folder1', 'folder2', 'file1.txt', 'file2.jpg']
二、使用os.listdir()函数列出文件夹中的内容
首先,需要使用Python的os模块导入os库:
import os
接下来,使用os.listdir()函数获取文件夹中的内容:
folder_path = '/path/to/folder' # 文件夹路径 file_list = os.listdir(folder_path) # 获取文件夹中的内容 print(file_list) # 打印文件夹中的所有文件和文件夹名称
可以通过循环遍历获取到的文件列表,来对文件夹中的子文件夹或文件进行操作:
for f in file_list: if os.path.isdir(os.path.join(folder_path, f)): # 如果是文件夹 print('folder:', f) else: print('file:', f)
以上代码可以判断获取到的每一项是否是文件夹,在控制台输出不同的结果。例如,如果文件夹中有一个名为test的文件夹和一个名为readme.md的文件,那么程序输出的结果如下:
folder: test file: readme.md
三、使用os.walk()函数列出文件夹中的文件
os.walk()函数可以遍历文件夹和其子文件夹中的所有文件和子文件夹,返回值是包含三个元素的元组,分别是:
- 当前文件夹路径
- 当前文件夹中的所有文件夹名称列表
- 当前文件夹中的所有文件名称列表
在代码中通过循环遍历这个元组,就可以获取到文件夹中的所有文件和子文件夹。
folder_path = '/path/to/folder' # 文件夹路径 for root, dirs, files in os.walk(folder_path): for file_name in files: print(os.path.join(root, file_name)) # 打印每个文件的绝对路径
以上代码可以打印出输入文件夹及其子文件夹中的所有文件路径。如果有文件夹中有一个名为test的子文件夹,文件夹中的文件有readme.md和test.py,那么输出的结果如下:
/path/to/folder/readme.md /path/to/folder/test.py /path/to/folder/test/test.md /path/to/folder/test/test.py
四、os.listdir()与os.walk()函数的不同
os.listdir()函数只会遍历指定文件夹中的所有文件和子文件夹,而不会递归遍历子文件夹中的文件和文件夹。
os.walk()函数会递归遍历指定文件夹及其子文件夹中的所有文件和子文件夹。
需要根据具体的需求选择不同的函数。
五、结语
通过本文的学习,读者可以使用Python中的os.listdir()和os.walk()函数列出文件夹中的所有文件和子文件夹名称,以及遍历文件夹和子文件夹中的所有文件。
使用这两个函数可以大大提高文件夹操作的效率,让文件管理变得更加简单便捷。