欢迎访问宙启技术站
智能推送

在Python中使用uos模块获取指定路径下的文件列表

发布时间:2024-01-16 06:45:51

在Python中,可以使用os模块中的listdir函数和isfile函数来获取指定路径下的文件列表。

listdir函数返回指定路径下的所有文件和目录的名称列表。isfile函数用于判断指定路径是否为一个文件。

下面是一个使用os模块获取指定路径下的文件列表的例子:

import os

def get_file_list(path):
    files = []
    # 遍历指定路径下的所有文件和目录
    for f in os.listdir(path):
        # 拼接绝对路径
        abs_path = os.path.join(path, f)
        # 判断是否为文件
        if os.path.isfile(abs_path):
            files.append(f)
    return files

# 获取当前目录下的文件列表
current_dir = os.getcwd()
files = get_file_list(current_dir)

# 打印文件列表
for f in files:
    print(f)

在上面的例子中,我们定义了一个get_file_list函数,它接受一个路径作为参数,并返回该路径下的所有文件的名称列表。首先,我们使用os.listdir函数获取指定路径下的所有文件和目录的名称列表。然后,我们使用os.path.join函数将路径和文件名拼接成绝对路径。接下来,我们使用os.path.isfile函数判断是否为文件,如果是文件,则将文件名加入到文件列表中。最后,我们使用print函数打印文件列表。

在上面的例子中,我们使用os.getcwd函数获取当前目录的路径,并调用get_file_list函数来获取当前目录下的文件列表,并打印出来。

注意,上面的例子只能获取指定路径下的直接子文件,而无法获取子目录中的文件。如果需要获取子目录中的文件,可以使用递归的方式来实现。

除了os模块,还可以使用glob模块来获取文件列表。glob模块提供了强大的通配符功能,可以根据通配符匹配文件名。下面是使用glob模块获取指定路径下的文件列表的例子:

import glob

def get_file_list(path):
    files = []
    # 使用通配符匹配文件名
    file_pattern = os.path.join(path, '*')
    # 遍历匹配到的文件路径
    for f in glob.glob(file_pattern):
        # 判断是否为文件
        if os.path.isfile(f):
            files.append(os.path.basename(f))
    return files

# 获取当前目录下的文件列表
current_dir = os.getcwd()
files = get_file_list(current_dir)

# 打印文件列表
for f in files:
    print(f)

在上面的例子中,我们使用glob.glob函数来匹配指定路径下的文件,'*'通配符表示匹配任意长度的任意字符。然后,我们使用os.path.isfile函数判断是否为文件,如果是文件,则将文件名加入到文件列表中。最后,我们使用print函数打印文件列表。

上面的两个例子中,我们使用了os.path.join函数来拼接路径,这样可以确保路径的正确性,不受不同操作系统的路径分隔符的影响。同时,使用os.path.basename函数可以获取文件名,不包含路径信息。

希望这篇文章能帮助到你,如果有什么问题,请随时提问。