c语言编程笔录

首页 >   > 笔记大全

笔记大全

Python中os scandir的使用方法

更新时间:2023-11-06

Python中os.scandir的使用方法

Python中的os.scandir()函数用于返回指定目录中的目录项信息。与os.listdir()函数相比,os.scandir()函数可以返回更丰富的目录项信息,如文件类型、大小、权限等。本文将详细介绍os.scandir()函数的基本用法及参数。

1. 语法

    import os
    os.scandir(path='.')
  

在Python的os模块中,scandir()函数的语法如上所示。其中,path参数指定要遍历的目录路径。默认情况下,如果不传递参数,则遍历当前工作目录。

2. 返回值

    import os
    entries = os.scandir()
    for entry in entries:
        print(entry.name)
  

scandir()函数返回一个包含目录项信息的迭代器。每个目录项信息都是一个os.DirEntry对象,其中包含了目录项的详细信息。以下示例代码演示了如何遍历当前目录下的所有文件和子目录,并输出它们的名称:

3. 遍历子目录

    import os
    def recursive_scandir(directory):
        for entry in os.scandir(directory):
            if entry.is_file():
                print('File:', entry.name)
            elif entry.is_dir():
                print('Directory:', entry.name)
                recursive_scandir(entry.path)

    recursive_scandir('.')
  

有时候,我们需要遍历目录下的所有子目录。使用递归函数可以轻松实现此功能,以下示例代码演示了如何递归遍历当前目录下的所有文件和目录:

4. 目录项信息获取

    import os

    entries = os.scandir()
    for entry in entries:
        print('Name         :', entry.name)
        print('Path         :', entry.path)
        print('Is File      :', entry.is_file())
        print('Is Directory :', entry.is_dir())
        print('Is Link      :', entry.is_symlink())
        print('Size         :', entry.stat().st_size)
        print('Created Time :', entry.stat().st_ctime)
        print('Modified Time:', entry.stat().st_mtime)
        print('Accessed Time:', entry.stat().st_atime)
        print('')

  

os.DirEntry对象包含了目录项的详细信息,可以通过该对象来获取文件类型、大小、创建时间、修改时间等信息。以下示例代码演示了如何获取和输出文件信息:

总结:Python中os.scandir()函数是一个遍历目录的强大函数,它可以返回比os.listdir()函数更丰富的目录项信息。它返回的是一个迭代器,每个目录项信息都是os.DirEntry对象,通过该对象可以获取文件类型、大小、时间等信息。使用递归函数可以遍历目录下的所有子目录。os.scandir()函数是Python中处理目录和文件的常用工具之一。