python將多級文件夾中所有的excel文件合并為一個存放到其他路徑中
时间: 2024-05-16 21:17:12 浏览: 13
你可以使用Python中的pandas模块来合并多个Excel文件。下面是一个示例代码,可以将指定目录下的所有Excel文件合并为一个文件,并将结果保存到另一个指定目录中:
```python
import os
import pandas as pd
# 设置文件夹路径和输出路径
folder_path = 'path/to/excel/folder'
output_path = 'path/to/output/file.xlsx'
# 获取文件夹中所有的Excel文件
files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx')]
# 读取所有Excel文件并合并为一个DataFrame
dfs = []
for file in files:
file_path = os.path.join(folder_path, file)
df = pd.read_excel(file_path)
dfs.append(df)
merged_df = pd.concat(dfs, ignore_index=True)
# 将合并后的DataFrame保存为Excel文件
merged_df.to_excel(output_path, index=False)
```
注意,这里假设所有Excel文件都具有相同的列和数据类型。如果不是这样,你可能需要在合并之前进行一些数据清洗和转换。
相关问题
Python抓取路径中多级文件夹内的txt文件合并成一个excel
以下是一个Python脚本示例,它可以抓取指定路径中多级文件夹内的所有txt文件并将它们合并为一个excel文件。
```python
import os
import glob
import pandas as pd
# 指定txt文件所在的路径
path = r'C:\your\path\to\directory'
# 获取所有txt文件的路径
txt_files = glob.glob(os.path.join(path, '**/*.txt'), recursive=True)
# 如果txt文件不存在,则退出程序
if not txt_files:
print('No txt files found in the specified directory')
exit()
# 通过循环读取每个txt文件并将它们合并到一个DataFrame中
data = pd.DataFrame()
for file in txt_files:
# 读取txt文件数据并转换为DataFrame
df = pd.read_csv(file, delimiter='\t')
# 添加文件名列
filename = os.path.splitext(os.path.basename(file))[0]
df['Filename'] = filename
# 将新的DataFrame合并到主DataFrame中
data = pd.concat([data, df])
# 将合并后的数据保存为excel文件
data.to_excel(os.path.join(path, 'merged_data.xlsx'), index=False)
```
此代码使用`glob`模块来查找指定路径内的所有txt文件。然后,它循环遍历这些文件并使用`pd.read_csv()`函数读取它们的内容。一个新的DataFrame被创建,并各个txt文件中的数据被添加到其中。最后,数据被保存为一个新的excel文件。请注意,代码中的分隔符为Tab。根据实际情况,您可能需要将其更改为适当的分隔符。
使用Python将某个文件夹下的多个Excel文件合并到一个文件中
可以使用Python中的pandas库来实现将多个Excel文件合并到一个文件中。
首先需要安装pandas库,可以使用以下命令进行安装:
```
pip install pandas
```
然后,可以使用以下代码实现将某个文件夹下的多个Excel文件合并到一个文件中:
```python
import os
import pandas as pd
# 文件夹路径
folder_path = 'path/to/folder'
# 获取文件夹下所有Excel文件名
file_names = [name for name in os.listdir(folder_path) if name.endswith('.xlsx')]
# 创建一个空的DataFrame
merged_df = pd.DataFrame()
# 遍历所有Excel文件,将数据合并到merged_df中
for file_name in file_names:
file_path = os.path.join(folder_path, file_name)
df = pd.read_excel(file_path)
merged_df = pd.concat([merged_df, df], ignore_index=True)
# 将合并后的数据保存到一个新的Excel文件中
merged_df.to_excel('merged.xlsx', index=False)
```
其中,需要将`folder_path`修改为需要合并Excel文件的文件夹路径,然后运行代码即可。最终合并后的数据将保存到一个名为`merged.xlsx`的Excel文件中。