Python 获取目录、子目录和文件列表

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()方法。无论选择哪种方法,都可以方便地获取所需的列表。希望本文对您有所帮助,感谢阅读!

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程