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
模块,我们可以轻松地管理文件系统,实现各种文件操作。希望本文对你有所帮助,如果你有任何问题或建议,请随时在评论区留言。