zoukankan      html  css  js  c++  java
  • Python文件操作---合并文本文件内容

    
    

    目前一个用的比较多的功能:将多个小文件的内容合并在一个统一的文件中,对原始文件重命名标记其已被处理过。
    之前使用其他脚本写的,尝试用python写了一下,顺便熟悉一下python的文件处理命令。

    原始文件

    经过处理之后

    最后还有一个蛋疼的因为缩进产生的第一个回车符

    其中包含了文件的创建和移除,文件内容的读写,文件的重命名的语法命令等等

    # -*- coding: utf-8 -*-
    import os
    import time
    import datetime
    
    def merge_file(file_path,file_name):
        #file_path must exits
        if(os.path.exists(file_path) is False):
            print('file_path is not exists')
            return
    
        if(os.path.exists(os.path.join(file_path, file_name))):
            os.remove(os.path.join(file_path, file_name))
    
        #'%Y_%m_%d%H%M%S',创建一个以日期命名的文本文件
        targetfilename  = str(time.strftime('%Y%m%d%H%M%S'))+'.txt'
        fobj = open(os.path.join(file_path, targetfilename), 'w')
        fobj.close()
    
        # a 是以追加的方式打开文件写入
        with open(os.path.join(file_path, targetfilename), 'a', encoding='GBK') as f_wirte:
            files = os.listdir(file_path)
            for file in files:
                print(os.path.join(file_path, file))
                with open(file_path+'\'+file, 'r', encoding='GBK') as f:
                    for line in f.readlines():
                        if(line.strip().__len__()) > 0:# 排除空行
                            f_wirte.write(line)
                    f_wirte.write('
    ')# 每读完一个文件之后,加一个回车,否则第一个文件的最后一行跟第二个文件的第一行没有回车
    
                # 文件合并之后,重命名原始的文件,
                # os.path.splitext(file)[0] 提取文件名,不包括后缀名
                # os.path.splitext(file)[1] 提取文件后缀名
                if (file != targetfilename):
                    os.rename(os.path.join(file_path, file),os.path.join(file_path, os.path.splitext(file)[0] + '在_' +str(time.strftime('%Y%m%d%H%M%S')) +'_已处理' + '.txt'))
    
    
    merge_file('D:TestPythonMergeFile','auoto_create_a_category_file')
  • 相关阅读:
    UVa 297 Quadtrees(树的递归)
    c++代码模板
    博客园 自定义CSS皮肤模板
    ubuntu 16.04 小键盘数字键盘开机自动启动
    set_union的几个例子
    CSU 1803 2016(数论)
    CSU 1809 Parenthesis(线段树+前缀和)
    UVA 253 Cube painting(暴力打表)
    洛谷 P1060 开心的金明
    Codeforces Round #369 (Div. 2) C. Coloring Trees(dp)
  • 原文地址:https://www.cnblogs.com/wy123/p/7510820.html
Copyright © 2011-2022 走看看