python语言遍历当前文件夹下的文件,包括子文件中的文件,之后再进行统计操作
时间: 2024-05-10 15:14:28 浏览: 73
可以使用 `os` 模块来实现对当前文件夹下的文件的遍历,包括子文件中的文件的遍历。
下面是一个示例代码,实现对当前文件夹下的文件的遍历,包括子文件中的文件的遍历,并统计文件的数量和总大小:
```python
import os
def traverse_dir(folder_path):
count = 0
size = 0
for root, dirs, files in os.walk(folder_path):
for file in files:
file_path = os.path.join(root, file)
count += 1
size += os.path.getsize(file_path)
return count, size
if __name__ == '__main__':
folder_path = '.' # 当前文件夹
count, size = traverse_dir(folder_path)
print(f'文件数量:{count},总大小:{size} bytes')
```
其中,`os.walk` 可以遍历当前文件夹下的文件,包括子文件中的文件。`os.path.join` 可以将文件名和文件路径合并为一个完整的文件路径。`os.path.getsize` 可以获取文件大小。最后,统计文件数量和总大小即可。
相关问题
python语言遍历当前文件夹下的文件,包括子文件中的文件,再对文件夹下的xls文件内容进行汇总统计,相同的tag,其count数量相加,最后汇总成一张表格
下面是一个实现这个需求的 Python 代码:
``` python
import os
import xlrd
from collections import defaultdict
import pandas as pd
# 定义一个 defaultdict,用于存放每个 tag 出现的次数
tag_count = defaultdict(int)
# 遍历指定目录及其子目录下的所有文件
for root, dirs, files in os.walk("."):
for file in files:
# 只处理 xls 文件
if file.endswith(".xls"):
# 使用 xlrd 读取 xls 文件中的数据
file_path = os.path.join(root, file)
book = xlrd.open_workbook(file_path)
sheet = book.sheet_by_index(0)
# 遍历每行数据,统计每个 tag 出现的次数
for row in range(1, sheet.nrows):
tag = sheet.cell(row, 0).value
count = int(sheet.cell(row, 1).value)
tag_count[tag] += count
# 将统计结果转换成 DataFrame,并按照 count 降序排序
df = pd.DataFrame(list(tag_count.items()), columns=["tag", "count"]).sort_values(by=["count"], ascending=False)
# 输出结果到文件
df.to_csv("result.csv", index=False)
```
这段代码会遍历当前目录及其子目录下的所有文件,找到所有的 xls 文件,读取它们中的数据,统计每个 tag 出现的次数,并将统计结果输出到一个 CSV 文件中。你可以根据实际需求修改代码中的路径和文件格式等参数。
python语言遍历当前文件夹下包含有关键词的子文件夹,对该子文件夹下的xlsx文件内容进行汇总统计,分成两列,一列放tag,一列放count。遇到相同的tag,将其count中的数值相加,最后汇总成一个新的xlsx文件
你可以按照以下步骤实现:
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")
```
完整代码如下:
阅读全文