Python 获取目录、子目录和文件列表
在本文中,我们将介绍如何使用Python来获取目录、子目录和文件列表。Python提供了多种方法来实现这一功能,我们将逐步介绍它们,并提供相应的示例代码。
阅读更多:Python 教程
使用os模块
Python的os模块提供了一些方法来处理文件和目录。我们可以使用os.listdir()
方法来获取指定目录中的所有文件和文件夹的列表。下面是一个示例代码:
import os
def list_directory(path):
files = os.listdir(path)
for file in files:
print(file)
# 测试示例
list_directory("/path/to/directory")
以上代码将打印出指定目录中的所有文件和文件夹的名称。
如果我们想要获取子目录和文件的列表,可以使用递归方法。下面是一个示例代码:
import os
def list_files(path):
for root, dirs, files in os.walk(path):
for file in files:
print(os.path.join(root, file))
# 测试示例
list_files("/path/to/directory")
以上代码将打印出指定目录及其子目录中的所有文件的路径。
使用glob模块
除了os模块,Python还提供了glob模块来处理文件和目录。glob模块中的glob()
方法可以根据通配符匹配文件名,从而获取文件列表。下面是一个示例代码:
import glob
def list_files(pattern):
files = glob.glob(pattern)
for file in files:
print(file)
# 测试示例
list_files("/path/to/directory/*")
以上代码将打印出指定目录中所有文件和文件夹的路径。
如果我们想要获取指定目录及其子目录中的文件列表,可以使用递归方法。下面是一个示例代码:
import glob
def list_files(pattern):
files = glob.glob(pattern)
for file in files:
print(file)
sub_directories = glob.glob(pattern + "/*/")
for sub_directory in sub_directories:
list_files(sub_directory + "*")
# 测试示例
list_files("/path/to/directory/*")
以上代码将打印出指定目录及其子目录中的所有文件的路径。
使用pathlib模块
Python 3中提供了pathlib模块,它提供了一种更简洁和面向对象的方式来处理文件和目录。我们可以使用pathlib模块的Path()
方法来创建路径对象,并使用该对象的方法来获取文件或目录的列表。下面是一个示例代码:
from pathlib import Path
def list_files(path):
p = Path(path)
items = p.iterdir()
for item in items:
print(item)
# 测试示例
list_files("/path/to/directory")
以上代码将打印出指定目录中的所有文件和文件夹。
如果我们想要获取指定目录及其子目录中的文件列表,可以使用递归方法。下面是一个示例代码:
from pathlib import Path
def list_files(path):
p = Path(path)
items = p.glob("**/*")
for item in items:
if item.is_file():
print(item)
# 测试示例
list_files("/path/to/directory")
以上代码将打印出指定目录及其子目录中的所有文件的路径。
总结
本文介绍了使用Python来获取目录、子目录和文件列表的方法。我们可以使用os模块中的os.listdir()
方法和os.walk()
方法,也可以使用glob模块中的glob()
方法,还可以使用pathlib模块中的Path()
方法。无论选择哪种方法,都可以方便地获取所需的列表。希望本文对您有所帮助,感谢阅读!