精华内容
下载资源
问答
  • 文本文件按行合并成一新文件。 文件格式:第一行为列标题,第二行开始为数据。例如: 文件a: 第一行 :A \t B \t C \t D (\t 为列分隔符,ABCD代表任意字符串,如“姓名”,“身高”等) 第二行开始为具体...

    问题描述:

    将两个文本文件按行合并成一个新文件。

    文件格式:第一行为列标题,第二行开始为数据。例如:
    文件a:
    第一行 :A \t B \t C \t D (\t 为列分隔符,ABCD代表任意字符串,如“姓名”,“身高”等)
    第二行开始为具体4列数据

    文件b:
    第一行:B \t A \t D \t E (含义与a相同)
    第二行开始为具体4列数据

    合并后的文件c:
    第一行:A \t B \t C \t D \t E (列的顺序无所谓,但应该有这5列)
    第二行开始为具体5列数据
    假设文件a有m行数据(不含标题行),文件b有n行数据,那么文件c应该有m + n行数据(行的顺序无所谓)。
    两个输入文件中的列必须与输出文件中的列对应。
    如第一个文件列名为A的列和第二个文件中列名为A的列必须合并到输出文件列名为A的那一列。
    源文件中不存在的列留空,如文件a没有E列,则文件a中所有数据行在文件c中的E列为空。

    考虑文件可能很大的情况有加分。

    用你所熟悉的语言写出具体代码,不要写伪代码。如果对文件的操作不熟,可以统一用下面语句代替读写文件(除此之外,必须按照所用语言的语法来实现)。

    s = file.readline()   // 读入file文件的一行字符串
    file.writeline(s)  //file文件中写入一行字符串
    

    思路:

    如图,列举学生信息的两张表,据题意给出示例,有两个重点:

    1. 合并(类似于数据库的操作,这里都用字符串裁剪进行处理)
    2. 去重

    在这里插入图片描述
    基本知识:

    • python读取文件readline(),读一行指针指向下一行

    • python中有关字符串裁剪:line.split('\t')[0]

      file_a = open("a.txt", "r", encoding="utf-8")
          first_line = file_a.readline()
          print("第一行是:" + first_line)
          # 数据行
          for line in file_a.readlines():
              str1.append(line.replace("\n", ""))
              print(line)
              a.append(line.split('\t')[0])
          	print(a)
             
      

      输出:

      第一行是:姓名	年龄	性别	身高
      
      ['小王']
      ['小王', '小张']
      ['小王', '小张', '小陈']
      
    • 拼接:

      str_list = ['hello', 'world']
      a = ''
      print a.join(str_list)
      

      输出:

      helloworld
      

    流程及难点:

    1. 首先,读文件:file1 = open("a.txt", "r", encoding="utf-8")
      按行读取:file_list1 = file1.readlines()

    2. 制定储蓄表,存储两张表的每个字段file_list1_name[]

    3. 读取的每一行进行字符串裁剪,并存储到file_list1[]file_list2[]

    4. 去重筛选
      在这里插入图片描述

    5. 字符串拼接s.append()

    6. 保存txt

      file3 = open("c.txt", "w")
      file3.writelines(file_list3)
      

    完整代码:

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    file1 = open("a.txt", "r", encoding="utf-8")
    file2 = open("b.txt", "r", encoding="utf-8")
    
    file_list1 = file1.readlines()  # 将所有变量读入列表file_list1
    file_list2 = file2.readlines()  # 将所有变量读入列表file_list2
    # print(type(file1))
    
    # 定义各属性数据存储列表
    file_list1_name = []
    file_list1_age = []
    file_list1_sex = []
    file_list1_height = []
    file_list2_age = []
    file_list2_name = []
    file_list2_height = []
    file_list2_class = []
    
    # 遍历file_list1 列表 将得到的信息进行下列操作
    for message in file_list1:
        temp_list = message.split()
        # 将txt文件中的第一行 也就是file_list1 列表的第一项 用split方法操作 以空格为分隔符 分成两部分继续放到temp_list列表里
    
        file_list1_name.append(str(temp_list[0]))
        file_list1_age.append(str(temp_list[1]))
        file_list1_sex.append(str(temp_list[2]))
        file_list1_height.append(message.split('\t')[3].rstrip('\n'))
    
    # 操作与file_list1列表完全相同
    for message in file_list2:
        temp_list = message.split()
        file_list2_age.append(str(temp_list[0]))
        file_list2_name.append(str(temp_list[1]))
        file_list2_height.append(str(temp_list[2]))
        file_list2_class.append(message.split('\t')[3].rstrip('\n'))
        # print(len(file_list1_name))
    
    # 选择与file_list2中的名称相同的file_list1中的名称并合并
    file_list3 = []
    for i in range(len(file_list1_name)):
        s = ''
        if file_list1_name[i] in file_list2_name:
            # 列表index方法 查找括号内对象 返回值为索引位置
            j = file_list2_name.index(file_list1_name[i])
    
            s = '\t'.join(
                [file_list1_name[i], file_list1_age[i], file_list1_sex[i], file_list1_height[i], file_list2_class[j]])
            # 字符串join方法连接三个属性,之间以(\t 制表位)隔开
    
            s += '\n'
        else:
            s = '\t'.join(
                [file_list1_name[i], file_list1_age[i], file_list1_sex[i], file_list1_height[i], str("")])
            s += '\n'
        file_list3.append(s)
    
    # 选择file_list1中的名称与file_list2中的名称不相同的
    for i in range(len(file_list2_name)):
        s = ''
        if file_list2_name[i] not in file_list1_name:
            s = '\t'.join(
                [file_list2_name[i], file_list2_age[i], str(''), file_list2_height[i], file_list2_class[i]])
            s += '\n'
        file_list3.append(s)
    
    
    # 将数据写入file3
    file3 = open("c.txt", "w")
    file3.writelines(file_list3)
    
    # 关闭文件
    file1.close()
    file2.close()
    file3.close()
    
    

    运行效果:
    在这里插入图片描述

    展开全文
  • dirPath = "/media/pc" #所有txt位于的文件夹路径 files = os.listdir(dirPath) res = "" i = 0 for file in files: if file.endswith(".txt"): i += 1 title = "第%s章 %s" % (i, file[0:len(fi...
    import os
    dirPath = "/media/pc" #所有txt位于的文件夹路径
    files = os.listdir(dirPath)
    res = ""
    i = 0
    for file in files:
        if file.endswith(".txt"):
            i += 1
            title = "第%s章 %s" % (i, file[0:len(file)-4])
    
            with open("/media/pc/" + file, "r", encoding='utf-8') as file:
                content = file.read()
                file.close()
    
            append = "\n%s\n\n%s" % (title,content)
            # append = "\n%s\n\n%s" % (title, content)
            res += append
    
    with open("/media/zong.txt", "w", encoding='utf-8') as outFile:
        outFile.write(res)
        outFile.close()
    print(len(res))

     

    展开全文
  • 主要为大家详细介绍了Python将多个excel文件合并为一个文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要为大家详细介绍了Python将多个excel表格合并为一个表格的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要介绍了Python 合并多个TXT文件并统计词频的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 主要介绍了使用python将多个excel文件合并到同一个文件的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 在使用python进行合并多个txt内容时,使用如下: with open(filepath,'w') as f: f.write(line) 会导致原来的filepath中的内容进行覆盖,如何进行不覆盖形式的编写呢,我们可以进行先读行再写的方式(先...

    在使用python进行合并多个txt的内容时,使用如下:

    with open(filepath,'w') as f:
        f.write(line) 

    会导致将原来的filepath中的内容进行覆盖,如何进行不覆盖形式的编写呢,我们可以进行先读行再写的方式(先readlines(),后write),源代码如下,同时还包含将文章中的符号、数字等的去除:

    import os
    import re
    import sys
    
    mefile_name=['D:\\LDA\\LdaStemDocs2\\breast cancer\\','D:\\LDA\\LdaStemDocs2\\colon cancer\\','D:\\LDA\\LdaStemDocs2\\lung cancer\\','D:\\LDA\\LdaStemDocs2\\NHL\\','D:\\LDA\\LdaStemDocs2\\pancreatic cancer\\','D:\\LDA\\LdaStemDocs2\\prostate cancer\\','D:\\LDA\\LdaStemDocs2\\urinary bladder cancer\\']
    for i in range(len(mefile_name)):
        for j in range(len(datil_name)):
            meragefiledir=mefile_name[i]+datil_name[j]
            filenames=os.listdir(meragefiledir)
            filestore_name='\\result_.txt'
            with open(filestore_name,'w',encoding='utf-8') as f:
                for filename in filenames:
                    filepath=meragefiledir+'\\'
                    filepath=filepath+filename
                    for line in open(filepath).readlines():
                        line=re.findall(r'[a-zA-Z]+\s+[a-zA-Z\s]*',line)
                        line="".join(line)  
                #print(line)
                        f.write(line+'\n')
                #f.write('\n')
            print('combine {0}{1} ending~~~~~~\n'.format(mefile_name[i],datil_name[j]))
    print('ending all')

    以上代码删除了原有的open(file)路径,具体根据自己的文件路径进行添加。

    展开全文
  • python合并多个txt文件

    千次阅读 2019-05-09 16:29:07
    #合并一个文件夹下的多个txt文件 #coding=utf-8 import os #获取目标文件夹的路径 filedir = os.getcwd()+'\\数据' #获取当前文件夹中的文件名称列表 filenames=os.listdir(filedir) #打开当前目录下的result.txt...

     

     

    
    #合并一个文件夹下的多个txt文件
    #coding=utf-8
    import os
    #获取目标文件夹的路径
    filedir = os.getcwd()+'\\数据'
    #获取当前文件夹中的文件名称列表
    filenames=os.listdir(filedir)
    #打开当前目录下的result.txt文件,如果没有则创建
    f=open('result.txt','w')
    i=0
    #先遍历文件名
    for filename in filenames:
        i+=1
        print(i)
        if i>0:
            filepath = filedir+'\\'+filename
            print(filepath)
            #遍历单个文件,读取行数
            for line in open(filepath,encoding='gbk', errors='ignore'):
                # print(str(line))
                f.writelines(line)
                # f.write('\n')
    #关闭文件
    f.close()

     

     

     

     
    展开全文
  • Python合并多个txt文件

    千次阅读 2020-11-27 09:37:46
    合并txt文件需要遵循一前后顺序,如果文件名中包含数字是最好的,尤其是位数相同的数字,这时文件名读取函数os.listdir会自动按照数字顺序读取。然而,若文件名是通过汉字进行排序的,那就有些不妙了。 对于型如一...
  • 文件夹内所有txt文件合并成一个txt文件。 合并后的txt文件按章节对应原来每个txt文件,一输入文件是一章,章节名字就是原txt文件文件名。 import os dirPath = "dirpath" #所有txt位于的文件夹路径 files = ...
  • python合并多个txt

    千次阅读 2019-06-04 17:47:10
    合并多个txt """ # 获取目标文件夹的路径 path = "F:/bj/新建文件夹/内容" # 获取当前文件夹中的文件名称列表 filenames = os.listdir(path) result = "result/merge.txt" # 打开当前目录下的result.txt文件,如果...
  • Python中将两个或多个list合成一个list的方法小结python中,list这种数据结构很常用到,如果两个或者多个list结构相同,内容类型相同,我们通常会两个或者多个list合并成一个,这样我们再循环遍历的时候就可以一次...
  • 第一次学习py下的py最新版然而网上相关教程都是老版,各种语法错误(纠错使人印象深刻),也许效率不高,但是基本拿来就能用. 根目录下所有txt一次性合并去重,太大了跑的可慢了。。
  • 利用Python将多个excel文件合并为一个文件思路利用python xlrd包读取excle文件,然后文件内容存入一个列表中,再利用xlsxwriter将内容写入到一个新的excel文件中。完整代码# -*- coding: utf-8 -*-#将多个Excel...
  • 实现批量txt的读取并合并到一个txt中进行输出,主要用于tcga数据的预处理
  • 主要为大家详细介绍了python如何将多个PDF进行合并,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • # 合并函数 def merger(files_path): try: # 返回目录下所有文件名 files_list = os.listdir(files_path) # 打开一文件装下所有数据 with open(bigfile_path, 'wb') as bigfile: print('开始合并。。。') #...
  • 使用python合并多个txt文件

    千次阅读 2020-04-08 17:44:37
    Ana文件夹下有29个txt文件,想通过python将它们合并到一个txt文件中去。 import os root='E:\Programe\corpora' path='E:\Programe\corpora\Ana' files=os.listdir(path) result=os.path.join(root,'result.txt') ...
  • 主要介绍了Python实现目录中TXT合并成一TXT文件的方法,涉及Python针对目录下文本文件的遍历、读取及写入等技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • python实现txt内容合并

    千次阅读 2018-06-04 20:19:24
    利用简单的文件读写,将多个txt中的内容合并到一个新的txt
  • 有时候需要数十甚至上百个txt或其他格式的文件内容合并到一起,如果一个个复制粘贴显然太费功夫,因此可以用代码实现文件内容合并。 代码示例: import os import linecache def combine_file(): # ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 137,804
精华内容 55,121
关键字:

python将多个txt内容合并

python 订阅