美文网首页
Python合并指定文件目录下的文件

Python合并指定文件目录下的文件

作者: vv阿甘vv | 来源:发表于2018-06-07 17:14 被阅读0次

    前两天遇到一个问题,需要将好多代码段文件合并到一个文件里,大概看了下,有九百多文件,手动复制粘贴的话大概会加班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)
    

    这样就可以了

    相关文章

      网友评论

          本文标题:Python合并指定文件目录下的文件

          本文链接:https://www.haomeiwen.com/subject/vqagsftx.html