python语言遍历当前文件夹下包含有关键词的子文件夹,对该子文件夹下的xlsx文件内容进行汇总统计,分成两列,一列放tag,一列放count。遇到相同的tag,将其count中的数值相加,最后汇总成一个新的xlsx文件
时间: 2024-06-09 19:11:17 浏览: 68
你可以按照以下步骤实现:
1. 使用os模块遍历当前文件夹下所有子文件夹,找到包含有关键词的子文件夹。
```python
import os
root_path = "." # 当前文件夹
keyword = "example" # 关键词
for dirpath, dirnames, filenames in os.walk(root_path):
for dirname in dirnames:
if keyword in dirname:
subdir_path = os.path.join(dirpath, dirname)
# 对该子文件夹下的xlsx文件进行操作
```
2. 使用openpyxl模块读取和写入xlsx文件。对于每个子文件夹,遍历其中的所有xlsx文件,读取其中的数据并进行汇总统计,最后将结果写入新的xlsx文件。
```python
from openpyxl import load_workbook, Workbook
# 新建一个Workbook对象,用于存放统计结果
result_wb = Workbook()
result_ws = result_wb.active
result_ws.append(["tag", "count"])
for filename in os.listdir(subdir_path):
if filename.endswith(".xlsx"):
file_path = os.path.join(subdir_path, filename)
# 读取xlsx文件中的数据
wb = load_workbook(file_path)
ws = wb.active
for row in ws.iter_rows(min_row=2, values_only=True):
tag, count = row
# 在result_ws中查找是否已存在该tag
for existing_row in result_ws.iter_rows(min_row=2, values_only=True):
existing_tag, existing_count = existing_row
if existing_tag == tag:
# 如果已存在该tag,则将其count相加
existing_count += count
# 更新result_ws中对应tag的count
result_ws.cell(existing_row[0], 2, existing_count)
break
else:
# 如果不存在该tag,则在result_ws中新增一行
result_ws.append([tag, count])
# 保存统计结果
result_wb.save("result.xlsx")
```
完整代码如下:
阅读全文