将同一个文件夹下面的所有xlsx写入到一个文件
时间: 2024-05-07 13:20:47 浏览: 73
可以使用Python中的pandas库来实现将同一个文件夹下的所有xlsx文件写入到一个文件中。以下是一个示例代码:
```python
import pandas as pd
import os
# 设置文件夹路径和输出文件名
folder_path = 'path/to/folder'
output_file = 'output.xlsx'
# 获取文件夹下所有xlsx文件
files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx')]
# 读取所有xlsx文件并合并到一个DataFrame中
df_list = []
for file in files:
file_path = os.path.join(folder_path, file)
df = pd.read_excel(file_path)
df_list.append(df)
combined_df = pd.concat(df_list)
# 将合并后的DataFrame写入到输出文件中
combined_df.to_excel(output_file, index=False)
```
在上述代码中,首先设置了文件夹路径和输出文件名。然后使用os模块获取该文件夹下所有xlsx文件名。接下来循环读取每个xlsx文件,将其读取为DataFrame并添加到一个列表中。最后使用pandas的concat函数将所有DataFrame合并到一个DataFrame中,并将其写入到输出文件中。
相关问题
python 读取文件夹的所有csv文件,并且将文件里的第四列数据全部都拼接到一个变量里去,最后将result变量里的数据写入到result.xlsx文件 代码
如下:
```python
import pandas as pd
import os
result = []
folder_path = './csv_folder' # 要读取的文件夹路径
for filename in os.listdir(folder_path):
if filename.endswith('.csv'):
file_path = os.path.join(folder_path, filename)
data = pd.read_csv(file_path)
result.extend(data.iloc[:, 3])
df = pd.DataFrame({'4th_column': result})
df.to_excel('result.xlsx', index=False)
```
以上代码可以读取指定文件夹内所有以.csv为后缀的文件,并将每个文件的第四列数据全部拼接到一个列表里,最后将列表里的所有元素写入Excel文件中的第一列。注意替换`folder_path`和`result.xlsx`为实际路径。
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")
```
完整代码如下:
阅读全文