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)

这样就可以了

上一篇下一篇

猜你喜欢

热点阅读