本程序功能

将tcga数据的批量txt文件合并成一个txt。

如下:

  • 原始的第一个txt(代表一个病人)的数据内容

  • 合并之后的txt数据,基因名不变,只是把病人的表达量收集到一起

操作详细步骤

本人测试通过的运行环境:Python 2.7  Windows 7 64bit  cmd命令运行器

使用步骤:

1.将要处理的数据txt文件放入到11这个文件夹下面(默认的root = 'C:\\tcga\\datapro\\11'),或者将单引号' '中的路径改成自己txt所在的文件夹的路径(结尾没有\\)也行

2.放入的txt文件建议不要超过100个,因为个数越多,读入时消耗电脑内存就越大,容易卡机,测试时100个可以正常运行

3.默认生成的txt路径为F:/data1.txt,自己也可以修改这个路径和文件名

4.点Windows键,在搜索栏输入 cmd 按回车键,cmd将被打开

4.将tcga_txt.py文件复制到安装的Python所在的文件夹下,我的是C:\Python27(默认安装就是这个路径),能看到python.exe

5.在cmd中输入cd C:\Python27(注意有空格)按回车会进入到该目录,然后输入python.exe tcga_txt.py  再按回车,就开始执行程序了,可以看到写入到输出文件的基因行数

4.处理完第一批txt后,记得将生成的data1.txt改名或者的剪切到别的地方,防止第二批txt运行时生成的data1.txt将其覆盖掉

源码

  tcga_txt.py

# -*- coding:utf-8 -*-
"""
Author:Logen
Version=1.0
Email:iin729@163.com
测试的运行环境:Python 2.7  Windows 7 64bit
使用说明:1.将要处理的数据txt文件放入到11这个文件夹下面(默认的root = 'C:\\tcga\\datapro\\11'),或者将''中的路径改成自己txt所在的文件夹的路径也行2.放入的txt文件建议不要超过100个,因为个数越多,读入时消耗电脑内存就越大,容易卡机,测试时100个可以正常运行3.默认生成的txt路径为F:/data1.txt,自己也可以修改这个路径和文件名4.处理完第一批txt后,记得将生成的data1.txt改名或者的剪切到别的地方,防止第二批txt运行时生成的data1.txt将其覆盖掉
"""
#当编写的Python文件即当前代码及注释中含有中文或者非英文字符时,需要声明编码格式为utf-8
import os   #读取txt文件所需要的包
import linecache #读取指定行函数linecache.getline(file_ob, line_num)所在的包root = 'C:\\tcga\\datapro\\11'#读取的批量txt所在的文件夹的路径
file_names = os.listdir(root) #读取11文件夹下所有的(520个)txt的文件名
file_ob_list = []   #定义一个列表,用来存放刚才读取的520个txt文件名
for file_name in file_names:  #循环地给这520个文件名加上它前面的路径,以得到它的具体路径fileob = root + '\\' + file_name #文件夹路径加上\\ 再加上具体要读的的txt的文件名就定位到了这个txtfile_ob_list.append(fileob) #将路径追加到列表中存储  ['C:\\tcga\\datapro\\11\\1.txt','C:\\tcga\\datapro\\11\\2.txt',。。。。]print file_ob_list  #打印这个列表的内容到显示屏,不想显示的话可以去掉这句ldata=[]
data = []#file_ob_list是所有文件(比如10个txt)对象组成的列表,for用来循环读取每一个文件,读取一个文件的方式是一行行读入,# 每次循环一次for就读取所有文件的某一行,因为这一行的第一列都是基因名称,都是一样的
line_num = 1  #从txt的第一行开始读入
total_line = len(open(file_ob_list[0]).readlines()) #计算一个txt中有多少行
while line_num <= total_line:        #只有读完的行数小于等于总行数时才再读下一行,否则结束读取for file_ob in file_ob_list:    #按顺序循环读取所有文件line = linecache.getline(file_ob, line_num)#读取这个文件的第line_num行line = line.strip() #去掉这一行最后一个字符/n 即换行符if line is None or len(line) ==0 :breakfields = line.split('\t')  #将这一行划分为两列,存放到列表中,fields是这样的: ['ENSG00000242268.2','0.0']prob = fields[1]           # fields[0]是'ENSG00000242268.2'   fields[1]是'0.0'#这个if部分只是将表达量的10位小数点压缩到4位,其实可以去掉这个处理if fields[1] != 'NA':      #基因表达量不是NA也就是为数字时,才对它进行小数点的减少处理prob = float(fields[1]) #将字符形式的数字如'0.0'强制转化为浮点型(带小数点的数字)数字0.0prob = '%.4f' % prob   #只保留小数点后面的4位小数if file_ob == file_ob_list[0] :  #如果读的是第一个txt文件,则将读进去的第一列基因名和第二列表达量data = [fields[0], prob]     # 都加入到列表中  data=  ['ENSG00000242268.2','0.0']else :                          # 如果读进去的不是第一个文件,则跳到else执行,第一列不要,data.append(prob)           #只将第二列表达量追加到之前的二维数组后面,假如这时读的是第二个文件的第一行# 此时fields为['ENSG00000242268.2','0.10'],则data=['ENSG00000242268.2','0.0','0.10']line_num = line_num + 1     #行数加1,好接着读取每一个文件的第二行ldata.append(data)        #将存放了所有txt的第一行数据的data,放到一个新的列表中保存,这时ldata就是一个二维列表,ldata=[['ENSG00000242268.2','0.0','0.10'],[...],...]#用来存放所有的(60482行,就是所有的基因名)行数data=[]                #清空data用来存放所有txt的下一行f = open("F:/data1.txt", "w+")  #创建存放数据的文件
for i,p in enumerate(ldata):    #将数据写入文件,i是enumerate()函数返回的ldata的某个元素p(就是一行数据,如['ENSG00000242268.2','0.0','0.10']从第一个开始)开始的序号(0,1,2等)for j,q in enumerate(p):   #读取p(如['ENSG00000242268.2','0.0','0.10'])中的每一个元素f.write(q + "\t" )    #将这个元素写到txt中,每写一个加入一个“\t”(它代表excel中的一根竖线)print i                 #显示一下打印到了第多少行f.write( "\n")         #每写完一行,就写入一个换行符"\n",好使的接下来的数据写入到第二行f.close()  #操作完一个文件后应该将它关闭

Python实现读取多个/批量txt文件合并成一个txt(示例为tcga数据处理)相关推荐

  1. 将多个txt文本文件合并成一个txt文件

    将多个txt文本文件合并成一个txt文件 方法一:批处理文件 有文档1.txt.2.txt 新建一个文档:合并文档.txt,在该合并文档中输入 copy/b 1.txt+2.txt 3.txt 将合并 ...

  2. 如何利用python整合excel_Python将多个excel文件合并为一个文件

    Python将多个excel文件合并为一个文件 这篇文章主要为大家详细介绍了Python将多个excel文件合并为一个文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 思路 利用python x ...

  3. python处理多个excel文件-python多个excel文件合并成一个sheet

    运营人员需要历年的订单数据,这就需要把多个文件夹下面的excel文件合并到一个sheet中,之前的解决的办法是用VBA把多个excel文件合并成一个表的多个sheet,再把多个sheet合并成一个sh ...

  4. python 整合excel_Python将多个excel文件合并为一个文件

    # -*- coding: utf-8 -*- #将多个Excel文件合并成一个 import xlrd import xlsxwriter #打开一个excel文件 def open_xls(fil ...

  5. 用python将指定目录下的所有json文件合并成一个csv文件

    #!/usr/bin/env python # -*- encoding: utf-8 -*-import sys import json import os import pandas as pd ...

  6. pythonexcel合并多个sheet_python多个excel文件合并成一个sheet

    运营人员需要历年的订单数据,这就需要把多个文件夹下面的excel文件合并到一个sheet中,之前的解决的办法是用VBA把多个excel文件合并成一个表的多个sheet,再把多个sheet合并成一个sh ...

  7. 多个txt合并成一个txt(简单易操作)

    操作步骤 1.同时按住 win+R,然后输入"cmd"进入命令行操作: 2.改变盘符(具体盘符取决于文件所在盘) 3.跳转到txt所在文件夹位置: 4.合并展示txt数据(可以看到 ...

  8. 怎么将多个CSV文件合并成一个CSV文件

    最近要批量将几百个CSV文件合成一个文件,最开始是一个个复制粘贴的,进度太慢了,后面发现用一个小办法可以几秒钟将几百个CSV文件合并成一个文件,分享给大家. 第一步:将需要合并的csv文件夹全部放在D ...

  9. 如何将多个excel表格合并成一个_怎么将多个pdf文件合并成一个?

    现实生活中,不知道大家有没有遇上这样的时刻,自己不会做pdf文件,于是就去网上找了一些素材,但是网上的素材都是零零散散的,但是我们又不知道应该如何才能将她们拼凑到一起.如果你也在为这样的问题而烦恼的话 ...

最新文章

  1. 权威预测:2018年这十大数字化转型趋势要火!
  2. 论如何寻找万一的川财证券开户渠道
  3. OpenMV中AprilTag识别Python程序源码
  4. 超级有意思的代码注释
  5. 图像检索:拓展查询(Query Expansion)
  6. 软件项目管理的十大定律之说明
  7. ecshop 2.7.x 去版权 lengze.com
  8. 谁说docker-compose不能水平扩展容器、服务多实例?
  9. 01_Struts2概述及环境搭建
  10. 一款问答APP的产品需求文档(PRD)
  11. linux下重启weblogic
  12. python函数的使用方法_Python函数使用
  13. vb不能插入png图片_收藏备用!!VBA操作图片【插入导出删除】
  14. 在线提取抖音视频BGM源码
  15. html文字溢出怎样处理,css文本溢出处理
  16. 收集了几个h5案例 与大家分享一下
  17. java 判断生日和当前时间 对比
  18. mysql字段时间类型报异常Data truncation: Incorrect datetime value: ‘2099-01-01 00:00:00‘ for column
  19. 开发工具之VisualStudio
  20. LOCATE函数的用法

热门文章

  1. [css] 使用css写一个红绿灯交替的动画效果
  2. 第三人称游戏开发-常用代码(1)
  3. 一个可以进行第三人称与第一人称切换的角色控制器,
  4. Linux搭建tengine2.0<Nginx>+php7环境
  5. 2022年最新CKS官方备考浏览器书签与2022年最新CKA考试题库大全
  6. Shimeji开源桌宠代码学习(3)
  7. wine安装+中文配置+使用总结贴
  8. PKU 数据结构与算法——外排序
  9. NAND FLASH命名规则
  10. web设计与制作|DW故宫景点介绍网页设计制作|web旅游景点网站模板成品|html故宫介绍网页设计制作源码|HTML5期末大作业