Python合并指定文件目录下的文件
2018-06-07 本文已影响0人
vv阿甘vv
前两天遇到一个问题,需要将好多代码段文件合并到一个文件里,大概看了下,有九百多文件,手动复制粘贴的话大概会加班24个小时吧,想起用Python来解决一下实际问题了
#-*- coding:utf-8 -*-
'''
@author = Alvin
合并指定文件路径下所有文件
'''
import os
path = 'C:\\Users\\dianjoy\\Desktop\\two'
def combine(path):
filenames = os.listdir(path) # 列出指定路径下所有文件名
file = open(path + '\\tes.java', 'a') # 合并后的文件名称,.java可以根据实际需求修改,若file文件不存在,自动创建
names = []
for filename in filenames: # 遍历所有文件名
filepath = path + '\\' + filename #为文件名添加上路径
print(filepath)
names.append(filepath)
with open(filepath, encoding='utf-8', errors= 'ignore') as f: # 打开文件
try:
file.write(f.read()) # 将读取的内容写入到指定的文件中
except Exception as e:
pass
f.close() # 关闭文件
file.write('\n') # 每合并一个文件,添加一个空行
file.close() # 执行结束,关闭合并后的文件
return len(names)
if __name__ == '__main__':
path = 'C:\\Users\\dianjoy\\Desktop\\one'
s = combine(path)
print(s)
补一发,合并csv文件:
import os
import pandas as pd
import numpy as np
path = r"D:/alvin/"
filenames = os.listdir(path)
df0 = pd.read_csv(path + '/' + filenames[0], engine = 'python')
for name in filenames:
if name == filenames[0]:
continue
df = pd.read_csv(path + '/' + name, engine = 'python')
print(name)
df0 = pd.concat([df0, df])
print("一共合并了%d个文件" % len(filenames))
df0.to_csv(path + '/' + 'all.csv', index = 0)
这样就可以了