关于line.split命令的问题
这是我需要处理的txt文件:
chr8 148401 153100 duplication
chr8 206001 207100 deletion
chr8 584401 589500 deletion
chr8 615101 616600 deletion
chr8 842601 843200 deletion
chr8 868901 869700 deletion
基本上,我想提取这两个数字,然后进行减法运算。我的代码如下:
#!/usr/bin/python
import os,sys
file = open('/home/xxx/sge_jobs_output/rCEU.bed','r')
for line in file.readlines():
num1 = line.split()[1].split()[0]
num2 = line.split()[1].split()[1].split()[0]
num = int(num2)-int(num1)
print num
我可以成功打印出num1,但num2却不行。那么我们不能连续使用超过两个.split吗?
而且错误信息是这样的:
Traceback (most recent call last):
File "CNV_length_cal.py", line 8, in <module>
num2 = line.split()[1].split()[1].split()[0]
IndexError: list index out of range
这里到底出了什么问题?我对.split这个命令真的很困惑……但我找不到相关的教程……谢谢
1 个回答
5
只需要一次分割就够了!
>>> s="chr8 584401 589500 deletion"
>>> l = s.split()
>>> l
['chr8', '584401', '589500', 'deletion']
>>> int(l[1]) - int(l[2])
-5099