使用Python的os模块中的listdir函数获取目录中的文件列表
Python中os模块的作用
在Python中,os模块是一个非常常用的模块。它提供了许多与操作系统交互的函数。它可以帮助我们在Python代码中访问并操作操作系统的文件系统、进程和环境变量等。我们可以通过os模块来获取当前工作目录、创建和删除目录、读取文件信息、执行命令等等。
listdir函数的作用
Python的os模块中有一个listdir()函数,它可以帮助我们获取给定目录中的所有文件和子目录列表。我们可以使用它来获取指定目录中所有文件的文件名列表。
import os
path = '/Users/Desktop'
file_names = os.listdir(path)
print(file_names)
在上面的代码中,我们导入了Python标准库的os模块,然后指定了一个路径:'/Users/Desktop',这是我们想要遍历的目录的位置。然后,我们使用os.listdir()函数来获取这个目录中的所有文件名,并将它们存储在一个名为file_names的变量中。最后,我们使用print()函数打印文件名列表。
处理隐藏文件
在有些情况下,您可能希望将目录中的隐藏文件过滤掉,只获取普通文件。我们可以通过for循环来遍历文件列表,忽略以'.'开头的文件名,就可以达到这个目的。
import os
path = '/Users/Desktop'
file_names = os.listdir(path)
for file_name in file_names:
if file_name.startswith('.'):
continue
else:
print(file_name)
在这段代码中,我们将file_names列表中的每个文件名与'.'字符进行比较。如果它是以'.'开头的,则跳过循环。否则,我们将文件名打印到控制台上。
处理子目录
如果您需要获取目录中所有子目录的文件,我们可以使用递归函数。递归函数是指函数调用自身的过程。在检索目录中的所有文件时,如果遇到子目录,我们可以递归地调用自己,以获取该子目录中的所有文件。下面的示例演示了如何使用递归函数来获取目录中所有文件:
import os
def get_all_files(dir_path):
file_list = []
for root, dirs, files in os.walk(dir_path):
for file_name in files:
file_list.append(os.path.join(root, file_name))
return file_list
dir_path = '/Users/Desktop/test'
all_files = get_all_files(dir_path)
for file_path in all_files:
print(file_path)
这里定义了get_all_files()函数,该函数使用os.walk()函数来递归地搜索给定目录及其子目录中的所有文件。os.walk()函数返回三个元素的元组,(root, dirs, files)。root是要查找的目录路径,dirs是子目录列表,files是当前目录下的文件列表。需要注意的是,get_all_files()函数返回所有文件的绝对路径列表。最后我们使用print()函数打印所有文件路径。