Python脚本实现文件夹管理与文件类型筛选

一、前言

在日常工作和学习中,我们经常需要处理各种文件和文件夹。Python作为一种功能强大的编程语言,提供了丰富的库和函数来管理文件系统。本文将介绍一个简单的Python脚本,用于检查文件夹是否存在并在不存在时创建它,同时列出指定文件夹下的所有文件,并根据文件类型进行筛选。

二、环境准备

  • Python版本:本文使用的Python版本为3.x。
  • 开发工具:推荐使用PyCharm作为IDE,当然也可以使用其他文本编辑器如VS Code等。

三、代码实现

首先,我们需要导入os模块,该模块提供了许多与操作系统交互的功能,包括文件和目录管理。

import os

1. 检查文件夹是否存在并创建

定义一个名为mkdir的函数,该函数接受一个路径作为参数,检查该路径是否存在,如果不存在则创建该路径。

def mkdir(path):
    # 去除首位空格
    path = path.strip()
    # 去除尾部 \ 符号
    path = path.rstrip("\\")
    # 判断路径是否存在
    isExists = os.path.exists(path)
    # 判断结果
    if not isExists:
        # 如果不存在则创建目录
        os.makedirs(path)
        print(path + ' 创建成功')
        return True
    else:
        # 如果目录存在则不创建,并提示目录已存在
        print(path + ' 目录已存在')
        return False

2. 获取当前文件夹下所有文件名

定义一个名为file_name的函数,该函数接受一个文件夹路径作为参数,返回该路径下所有文件的完整路径列表。

def file_name(file_dir):
    path_list = []
    for root, dirs, files in os.walk(file_dir):
        for file in files:
            path = os.path.join(root, file)
            path_list.append(path)
    return path_list

注意:在上面的代码中,使用了os.path.join来拼接路径,这比直接使用字符串拼接更安全,因为它会自动处理不同操作系统之间的路径分隔符差异。

3. 筛选特定类型的文件

在主程序中,我们调用file_name函数获取指定路径下的所有文件,然后根据文件扩展名筛选出PDF和Excel文件。

if __name__ == '__main__':
    path_list = file_name(r"C:\Users\LTCH\Desktop\BOM电子档20230705")
    pdf_path_list = []
    excel_path_list = []
    for t in range(len(path_list)):
        if "pdf" in path_list[t]:
            pdf_path_list.append(path_list[t])
        if "xlsx" in path_list[t] or "xls" in path_list[t]:
            excel_path_list.append(path_list[t])

    print(pdf_path_list, excel_path_list)

注意:在筛选文件类型时,需要确保条件判断正确。例如,原代码中的if "xlsx" or "xls" in path_list[t]:实际上是有问题的,因为if "xlsx"始终为True,应该改为if "xlsx" in path_list[t] or "xls" in path_list[t]:

四、完整代码

import os

# 检查文件夹是否存在,若无,则创建新文件夹
def mkdir(path):
    # 去除首位空格
    path = path.strip()
    # 去除尾部 \ 符号
    path = path.rstrip("\\")
    # 判断路径是否存在
    # 存在     True
    # 不存在   False
    isExists = os.path.exists(path)
    # 判断结果
    if not isExists:
        # 如果不存在则创建目录
        # 创建目录操作函数
        os.makedirs(path)
        print(path + ' 创建成功')
        return True
    else:
        # 如果目录存在则不创建,并提示目录已存在
        print(path + ' 目录已存在')
        return False


# 获取当前文件夹下所有文件名
def file_name(file_dir):
    #   print(root) # 当前目录路径
    #   print(dirs) # 当前路径下所有子目录,如:['LT-I3-PNP部品表(PART LIST)_20221206.xlsx', 'LT-I3-ZFL部品表(PART LIST)_20221206.xlsx', 'LT-I3部品表(PART LIST)_20230506.xlsx']
    #   print(files) # 当前路径下所有非目录子文件,如:D:\python_demo\创建与管理BOM文件夹\statics\1.9、BOM\LT-I3\最新版本
    path_list = []
    dirs_list = []
    for root, dirs, files in os.walk(file_dir):
        for i in range(len(files)):
            path = os.path.join(root, file)
            path_list.append(path)
    return path_list


if __name__ == '__main__':
    path_list = file_name(r"C:\Users\LTCH\Desktop\BOM电子档20230705")
    pdf_path_list = []
    excel_path_list = []
    for t in range(len(path_list)):
        if "pdf" in path_list[t]:
            pdf_path_list.append(path_list[t])
        if "xlsx" or "xls" in path_list[t]:
            excel_path_list.append(path_list[t])

    print(pdf_path_list, excel_path_list)

五、运行结果

运行上述脚本后,控制台将输出指定路径下所有PDF和Excel文件的完整路径列表。

六、总结

本文介绍了一个简单的Python脚本,用于文件夹的创建和文件类型的筛选。通过os模块,我们可以轻松地管理文件系统,实现各种文件操作。希望本文对你有所帮助,如果你有任何问题或建议,请随时在评论区留言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值