如何在Python中列出目录内容?
在Python中,我们可以使用os模块或者os.path模块来列出目录内容。这两个模块提供了许多函数,可以用于文件和目录的操作。
更多Python教程,请阅读:Python 教程
使用os模块列出目录内容
使用os模块中的listdir函数可以列出一个目录下的所有文件和子目录。
import os
dir_path = '.' # 目录路径
files = os.listdir(dir_path)
for file in files:
print(file)
运行上述代码后,将会打印出当前目录下的所有文件和子目录。
如果只需要列出某种类型的文件,可以使用os.path模块中的splitext函数来过滤文件类型。
import os
dir_path = '.' # 目录路径
for file in os.listdir(dir_path):
if os.path.splitext(file)[-1].lower() == '.txt': # 只列出扩展名为txt的文件
print(file)
使用os.path模块列出目录内容
使用os.path模块,在os模块中的listdir函数的基础上,我们可以使用isfile和isdir函数来分别判断一个文件或目录是否为文件或目录类型。
import os
dir_path = '.' # 目录路径
for file in os.listdir(dir_path):
file_path = os.path.join(dir_path, file)
if os.path.isfile(file_path): # 判断是否为文件类型
print('File:', file)
elif os.path.isdir(file_path): # 判断是否为目录类型
print('Directory:', file)
通过上述代码,我们可以分别打印出当前目录下的文件和子目录,并区分它们的类型。
同时,我们还可以使用os.path模块中的split函数来获取文件名和扩展名,从而进一步处理目录内容。
import os
dir_path = '.' # 目录路径
for file in os.listdir(dir_path):
file_path = os.path.join(dir_path, file)
if os.path.isfile(file_path):
filename, fileext = os.path.splitext(file) # 获取文件名和扩展名
print('File name:', filename)
print('File extension:', fileext)
elif os.path.isdir(file_path):
print('Directory:', file)
使用glob模块列出目录内容
除了使用os模块和os.path模块,我们还可以使用glob模块来列出目录内容。glob模块提供了一个glob函数,用于匹配符合条件的文件和目录。
import glob
dir_path = '.' # 目录路径
files = glob.glob(dir_path + '/*') # 匹配所有文件和子目录
for file in files:
print(file)
上述代码将列出当前目录下的所有文件和子目录。
如果需要列出所有某种类型的文件,可以使用glob函数的通配符和os.path模块中的splitext函数来指定匹配规则。
import glob
import os
dir_path = '.' # 目录路径
files = glob.glob(os.path.join(dir_path, '*.txt')) # 匹配所有扩展名为txt的文件
for file in files:
print(file)
结论
Python提供了许多模块和函数来操作文件和目录。在列出目录内容时,我们可以使用os模块、os.path模块或者glob模块。通过这些模块和函数,可以方便地列出目录下的所有文件和子目录,并进行进一步的操作。