ITPub博客

首页 > 应用开发 > Python > Python如何列出目录中的所有文件?

Python如何列出目录中的所有文件?

原创 Python 作者:mingtian66 时间:2024-08-16 16:12:22 0 删除 编辑

在Python中,列出目录(文件夹)中的所有文件可以通过多种方式实现,但最常用的方法是使用 os模块或 pathlib模块。下面我将分别展示这两种方法。

使用 os模块

os模块是Python标准库的一部分,提供了与操作系统交互的功能。要列出目录中的所有文件,你可以使用 os.listdir()函数或 os.scandir()(在Python 3.5及更高版本中引入,提供了更高效的目录迭代器)函数,但 os.walk()函数通常用于遍历目录树(即包括子目录中的所有文件)。不过,如果你只想要列出当前目录的文件, os.listdir()就足够了。

pythonimport os# 指定要列出文件的目录directory = '/path/to/your/directory'# 使用os.listdir()列出所有文件和目录for filename in os.listdir(directory):    print(filename)# 如果你只想列出文件(排除目录),可以这样做:for filename in os.listdir(directory):    if os.path.isfile(os.path.join(directory, filename)):        print(filename)

使用 pathlib模块

pathlib是Python 3.4及以后版本中引入的一个面向对象的文件系统路径库,旨在使文件系统路径的操作更加直观和易于理解。

pythonfrom pathlib import Path# 指定要列出文件的目录directory = Path('/path/to/your/directory')# 使用Path.iterdir()列出所有文件和目录for entry in directory.iterdir():    print(entry.name)# 如果你只想列出文件(排除目录),可以这样做:for entry in directory.iterdir():    if entry.is_file():        print(entry.name)# 或者,使用Path.glob()匹配所有文件(不包括目录)for file in directory.glob('*'):    if file.is_file():        print(file.name)    # 注意:在上面的glob示例中,由于'*'也匹配目录,所以我们需要检查每个匹配项是否为文件。    # 但实际上,直接使用glob而不进行is_file()检查也是安全的,因为glob只返回文件(和目录)的路径对象,    # 如果你只关心文件,可以假设所有匹配项都是文件(除非你的命名模式可能意外地匹配目录)。# 更简洁的glob示例,直接列出所有文件:for file in directory.glob('*.txt'):  # 假设你只想列出.txt文件    print(file.name)

在上面的 pathlib示例中,我展示了如何使用 iterdir()方法列出目录中的所有项(包括文件和子目录),以及如何使用 glob()方法(通过指定模式)来匹配和列出特定类型的文件。 glob()方法特别有用,因为它允许你使用Unix shell风格的通配符来匹配文件名。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70040412/viewspace-3025236/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2024-08-07

  • 博文量
    589
  • 访问量
    602807