python 提取文件指定列的方法示例
之前用featureCount处理得到结果,要提出第一列gene_id和readcount列,首先软件输出的第一行默认是你使用的命令行,没有用,用bash批量删掉。
foriin`ls`;dosed-i'1d'$i;done
删除当前文件夹下所有文件第一行。
其实提出两列很简单,不过我受够了每次一个文件执行一次的烦。想搞成别的程序调用时命令行参数直接就行。第一次知道sys.argv这玩意,学到了。
我设置了-i输入,-o输出这两个参数来判断输入输出文件个数,不过对于错误命令行输入的判断还很欠缺,毕竟只有自己用。
上代码:
importsys leng=len(sys.argv) foriinrange(leng):#indextheinputfileandoutputfilelocation,maybeit'stoocomplex ifsys.argv[i]=="-i": it=i ifsys.argv[i]=="-o": out=i foriinrange(it+1,out):#inputfilenumber(thereshouldhavesame#ofinandoutfile) print(sys.argv[i]) file=open(sys.argv[i],'r') f=open(sys.argv[i+out-it],'w') count=[] forlinesinfile.readlines(): two=[] lines=lines.rstrip('\n') b=lines.split('\t') two.append(b[0]) if(b[6].startswith('.')):#chagepathtocount,someoutputproblem b[6]="count" two.append(b[6]) s='\t'.join(two) f.write(s+'\n') f.close
其实python里面str和list弄的还是昏头昏脑的,每次都要错了再改。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。