Python os.scandir() 方法详解

  • Post category:Python

Python os.scandir()函数是Python中用于扫描一个目录的函数。它返回一个迭代器,迭代器中每个元素都是一个文件对象(文件名、文件夹名等)的相关信息。

作用

Python os.scandir()函数的作用是扫描指定目录(路径)下的所有文件和子目录,并返回一个可迭代的对象,迭代器中包含了目录下所有文件和子目录的相关信息。这些信息包括文件名、文件大小、创建时间、修改时间、是否是文件夹等。

使用方法

使用Python os.scandir()函数需要传入一个参数,即要扫描的目录的路径,例如:

import os

for entry in os.scandir('/home/user/documents'):
    print(entry.name)

以上代码中的参数为要扫描的目录的路径,即’/home/user/documents’。用os.scandir()函数返回的迭代器进行循环,每次循环得到一个文件对象的相关信息。

若要单纯的遍历一个目录可以使用如下代码:

import os

for root, dirs, files in os.walk('/home/user/documents'):
    for name in files:
        print(os.path.join(root,name))
    for name in dirs:
        print(os.path.join(root,name))

以上代码中的参数为要扫描的目录的路径,即’/home/user/documents’。用os.walk()函数返回的迭代器进行循环,每次循环得到一个文件对象的相关信息。其中root表示当前目录,dirs表示当前目录下的子目录,files表示当前目录下的所有文件。利用os.path.join()函数可以将目录名和文件名组合起来,形成完整的文件路径。

相关信息

Python os.scandir()函数返回的每个文件对象都具有以下属性:

  1. name:文件名
  2. path:文件路径
  3. is_dir():判断当前对象是否是一个目录,返回True或False
  4. is_file():判断当前对象是否是一个文件,返回True或False
  5. stat():获取当前对象的状态信息,包括文件大小、创建时间、修改时间等

另外,Python os.scandir()函数还可以通过实现上下文管理器,使文件对象在使用结束后自动关闭。例如:

with os.scandir('/home/user/documents') as entries:
    for entry in entries:
        print(entry.name)

以上代码中用with语句实现上下文管理器,当循环结束后,文件对象会自动关闭。