Python中os scandir的使用方法
更新时间:2023-11-06Python中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中处理目录和文件的常用工具之一。