您的位置:

Python操作系统:利用os.listdir实现目录读取

一、os.listdir函数介绍

os模块是Python中一个很重要的模块,它提供了访问操作系统功能的接口。其中,os.listdir函数用于返回指定路径下的所有文件和目录的名称列表。

os.listdir函数的语法如下:

import os
os.listdir(path)

其中,path表示要查看的目录的路径。该函数返回的结果是一个列表,其中每个元素是指定路径下的文件或目录的名称。

二、os.listdir函数的使用

我们可以使用os.listdir函数来读取某个目录下的所有文件和目录。

例如,我们有一个名为“MyFolder”的目录,它包含了两个文件“file1.txt”和“file2.csv”,以及一个子目录“SubFolder”:

MyFolder/
|-- file1.txt
|-- file2.csv
`-- SubFolder/
    |-- subfile1.csv
    |-- subfile2.txt
    `-- subfile3.xlsx

下面是使用os.listdir函数读取“MyFolder”目录下的所有文件和目录的代码:

import os

path = "MyFolder/"
files = os.listdir(path)

for file in files:
    print(file)

上述代码执行结果如下:

file1.txt
file2.csv
SubFolder

注意,os.listdir函数返回的列表中包含了子目录的名称。

三、过滤指定文件类型

有时候,我们只需要读取指定类型的文件,可以通过对os.listdir函数返回的列表进行筛选来实现。

例如,我们只需要读取“MyFolder”目录下的所有CSV文件,可以在for循环中添加一个判断条件:

import os

path = "MyFolder/"
files = os.listdir(path)

for file in files:
    if file.endswith(".csv"):
        print(file)

上述代码执行结果如下:

file2.csv
subfile1.csv

注意,os.listdir函数返回的列表中包含了子目录的名称,我们可以使用os.path.join函数来拼接完整的路径以便读取子目录中的文件。

import os

path = "MyFolder/"
files = os.listdir(path)

for file in files:
    if file.endswith(".csv"):
        print(os.path.join(path, file))

上述代码执行结果如下:

MyFolder/file2.csv
MyFolder/SubFolder/subfile1.csv

四、总结

os.listdir函数是Python中读取目录信息的常用函数,它可以返回指定路径下的所有文件和目录的名称列表。我们可以通过对其返回结果进行筛选来读取指定类型的文件或目录。

下面是完整的读取“MyFolder”目录下所有CSV文件的代码示例:

import os

path = "MyFolder/"
files = os.listdir(path)

for file in files:
    if file.endswith(".csv"):
        print(os.path.join(path, file))