在Python中合并多个文件,你可以使用不同的方法,具体取决于文件的类型和你想要达到的目的。以下是几种常见的方法:
合并CSV文件
如果你想要合并多个CSV文件,可以使用`pandas`库。以下是一个示例代码:
import pandas as pd
记录文件夹路径
file_dir = 'C:\\数据分析\\个人实操\\python数据视图\\实操作业一 多文件合并\\数据源\\folder' 文件路径
new_filename = file_dir + '\\new_file.xlsx' 构建新的表格名称
找到文件路径下的所有表格名称,返回列表
file_list = os.listdir(file_dir)
new_list = []
for file in file_list:
file_path = os.path.join(file_dir, file) 重构文件路径
dataframe = pd.read_excel(file_path) 将excel转换成DataFrame
new_list.append(dataframe) 保存到新列表中
df = pd.concat(new_list) 多个DataFrame合并为一个
df.to_excel(new_filename, index=False) 写入到一个新excel表中
合并文本文件
如果你想要合并多个文本文件,可以使用以下代码:
import os
path = 'D:\Downloads\网站日志' 文件夹目录
files = os.listdir(path) 得到文件夹下的所有文件名称
with open('合成.log', 'a') as log: 以追加模式打开文件
for file in files:
with open(os.path.join(path, file), 'r') as f: 打开文件
log.write(f.read()) 写入文件内容
print('已经合并:' + file) 打印合并的文件名
合并二进制文件
如果你想要合并二进制文件,可以使用以下代码:
import os
def merge_files(fileslist, mfname):
FILE_SLIM = 256 * (1024 * 1024) 256MB
p_fp = open(mfname, 'wb') 打开新文件
for file in fileslist:
with open(file, 'rb') as c_fp: 打开文件
fsize = os.stat(file).st_size 获取文件大小
count = fsize & FILE_SLIM 计算要读取的字节数
while count > 0:
p_fp.write(c_fp.read(FILE_SLIM)) 写入文件内容
fsize -= FILE_SLIM
count -= 1
p_fp.close() 关闭新文件
调用函数合并文件
merge_files(['file1.bin', 'file2.bin'], 'merged.bin')
请根据你的具体需求选择合适的方法,并确保你有适当的文件读取和写入权限。如果你需要合并其他类型的文件,你可能需要使用不同的库或自定义方法。