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 弄的还是昏头昏脑的,每次都要错了再改。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值