python 提取文件指定列的方法示例

yipeiwu_com6年前Python基础

之前用featureCount 处理得到结果,要提出第一列gene_id 和 readcount 列,首先软件输出的第一行默认是你使用的命令行,没有用,用bash批量删掉。

for i in `ls`;do sed -i '1d' $i;done

删除当前文件夹下所有文件第一行。

其实提出两列很简单,不过我受够了每次一个文件执行一次的烦。想搞成别的程序调用时命令行参数直接就行。第一次知道sys.argv这玩意,学到了。

我设置了 -i 输入,-o 输出 这两个参数来判断输入输出文件个数,不过对于错误命令行输入的判断还很欠缺,毕竟只有自己用。

上代码:

import sys
leng=len(sys.argv)
for i in range(leng): # index the input file and output file location,maybe it's too complex
 if sys.argv[i]=="-i":
 it=i
 if sys.argv[i]=="-o":
 out=i
for i in range(it+1,out): # input file number(there should have same # of in and out file)
 print(sys.argv[i])
 file=open(sys.argv[i],'r')
 f=open(sys.argv[i+out-it],'w')
 count=[]
 for lines in file.readlines():
 two=[]
 lines=lines.rstrip('\n')
 b=lines.split('\t')
 two.append(b[0])
 if(b[6].startswith('.')): #chage path to count,some output problem
  b[6]="count"
 two.append(b[6])
 s='\t'.join(two)
 f.write(s+'\n')
 f.close

其实python里面 str 和list 弄的还是昏头昏脑的,每次都要错了再改。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

对python中的for循环和range内置函数详解

对python中的for循环和range内置函数详解

如下所示: 1.for循环和range内置函数配合使用 range函数生成一个从零开始的列表, range(4)表示list:0123 range(1,11,2)表示从1开始到11-...

Python2实现的图片文本识别功能详解

Python2实现的图片文本识别功能详解

本文实例讲述了Python2实现的图片文本识别功能。分享给大家供大家参考,具体如下: 这里需要用到python的几个库,分别是pytesser,以及pytesser的依赖库PIL。pyt...

Python 输出时去掉列表元组外面的方括号与圆括号的方法

Python 输出时去掉列表元组外面的方括号与圆括号的方法

在这可以用join()函数 'x'.join(y),x可以是任意分割字符,y是列表或元组。以列表为例,可以将列表中的每一个元素两头的引号给去除,同时,元素与元素之间以字符‘x'作为分割标...

python实现嵌套列表平铺的两种方法

方法一:使用列表推导式 >>> vec = [[1,2,3],[4,5,6],[7,8,9]] >>> get = [num for elem i...

Python常见格式化字符串方法小结【百分号与format方法】

本文实例讲述了Python常见格式化字符串方法。分享给大家供大家参考,具体如下: 【方式一】百分号(%)方式,类C的printf,需要分别不同类型。 1、匿名tuple。(推荐在参数少时...