下面就为大家介绍具体的Python3.7利用函数ospandas利用Excel对文件名进行归类的实例教程。
目标
我们想要完成的目标是,将指定文件夹下的所有文件按照其名称中的关键字归类到对应的文件夹中。
准备工作
在实现之前,我们需要准备以下工作:
- Python3.7环境
- Pandas库
- Numpy库
- openpyxl库
你可以使用pip安装这些库,命令如下:
pip install pandas numpy openpyxl
实现步骤
- 创建一个Excel文件,用以记录文件名的归类规则。例如我们创建一个Workbook1.xlsx文件。
- 在Excel文件中创建一个名为“Sheet1”的工作表,并添加下列列:[关键字],[文件夹名],[文件夹路径]。
- 将归类规则填入工作表中,例如如下所示:
关键字 | 文件夹名 | 文件夹路径 |
---|---|---|
apple | 水果 | /Users/Jack/desktop/Test/水果 |
pear | 水果 | /Users/Jack/desktop/Test/水果 |
banana | 水果 | /Users/Jack/desktop/Test/水果 |
dog | 宠物 | /Users/Jack/desktop/Test/宠物 |
cat | 宠物 | /Users/Jack/desktop/Test/宠物 |
rabbit | 宠物 | /Users/Jack/desktop/Test/宠物 |
car | 汽车 | /Users/Jack/desktop/Test/汽车 |
注意:文件夹路径应该是绝对路径,因为在程序中需要使用。
- 编写Python程序。下面是完整代码实例:
import os
import pandas as pd
def parse_excel(file: str) -> list:
"""解析Excel文件,返回一个包含归类规则的字典列表"""
df = pd.read_excel(file)
rules = []
for _, row in df.iterrows():
rule = {'keywords': row['关键字'],
'folder_name': row['文件夹名'],
'folder_path': row['文件夹路径']}
rules.append(rule)
return rules
def classify_files(folder_path: str, rules: list):
"""将指定文件夹下的文件按照归类规则归类到对应的文件夹中"""
for root, _, files in os.walk(folder_path):
for file in files:
for rule in rules:
if rule['keywords'] in file:
folder = rule['folder_path']
if not os.path.exists(folder):
os.makedirs(folder)
src = os.path.join(root, file)
dst = os.path.join(folder, file)
os.rename(src, dst)
if __name__ == '__main__':
# 解析Excel文件,获取归类规则
rules = parse_excel('/Users/Jack/desktop/Test/Workbook1.xlsx')
# 将指定文件夹下的文件按照归类规则归类到对应的文件夹中
classify_files('/Users/Jack/desktop/Test', rules)
程序分为两个函数。第一个函数用于解析Excel文件,将其中的归类规则转换为列表储存。第二个函数用于将指定文件夹下的文件按照归类规则归类到对应的文件夹中。
程序中涉及到了Pandas和os库的使用。Pandas用于读取Excel文件,os用于文件操作。
需要注意的是,为了实现归类操作,我们需要使用os库的rename函数,故在使用前需要确保相关目录有操作权限。
- 在终端中执行程序。执行成功后,指定文件夹下的文件将会按照归类规则被归类到对应的文件夹中。
示例说明
为了更好地理解上述内容,这里提供两个实际的示例说明。
示例1:按照图片拍摄日期归类
我们有一堆图片,需要按照拍摄日期归类到对应的文件夹中。可以创建如下的Excel文件来规定归类规则:
关键字 | 文件夹名 | 文件夹路径 |
---|---|---|
202101 | 2021年1月 | /Users/Jack/desktop/Test/图片/2021年1月 |
202102 | 2021年2月 | /Users/Jack/desktop/Test/图片/2021年2月 |
202103 | 2021年3月 | /Users/Jack/desktop/Test/图片/2021年3月 |
其中关键字部分包含了每个文件的拍摄日期信息。我们可以使用Pandas包的read_excel方法读取Excel文件,得到包含了归类规则的列表。然后遍历指定文件夹下的所有文件,根据文件名中的拍摄日期信息和归类规则的关键字信息,将文件按照指定规则归类到对应的文件夹中。
示例2:按照文件类型归类
我们有很多文件,需要按照文件类型归类到对应的文件夹中。可以创建如下的Excel文件来规定归类规则:
关键字 | 文件夹名 | 文件夹路径 |
---|---|---|
/Users/Jack/desktop/Test/资料/PDF | ||
.jpg | 图片 | /Users/Jack/desktop/Test/资料/图片 |
.docx | Word | /Users/Jack/desktop/Test/资料/Word |
其中关键字部分包含了每个文件的文件类型信息。我们可以使用Pandas包的read_excel方法读取Excel文件,得到包含了归类规则的列表。然后遍历指定文件夹下的所有文件,根据文件名中的文件类型信息和归类规则的关键字信息,将文件按照指定规则归类到对应的文件夹中。
以上就是本次Python3.7利用函数Ospandas利用Excel对文件名进行归类的完整实例教程,希望可以帮助到大家。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python3.7 利用函数os pandas利用excel对文件名进行归类 - Python技术站