0

我正在尝试从令牌变量访问列表元素,但我不断收到错误消息

 print token[0]
IndexError: list index out of range'

当我尝试从令牌列表访问元素时。

文件变基文件的内容是:

ZraI       3 GAC'GTC        0 !  AatII                            >INV 
;ZrmI      3 AGT'ACT        0 !  ScaI,AssI,BmcAI                   >I

代码是:

 with open (rebase_file, 'r') as rebase:
     lines = rebase.readlines()
     string  = ''
     for line in lines:
         token = line.split()
         print token[0]
4

3 回答 3

6

你遇到了一个空行:

>>> ''.split()[0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

只需使用以下命令对此进行测试if line.strip():

with open (rebase_file, 'r') as rebase:
    for line in rebase:
        if line.strip():
            token = line.split()
            print token[0]

请注意,我直接遍历文件,而不是一次性将其全部读入内存。

于 2012-09-10T20:46:08.480 回答
2

你可能有一个空行,检查一下。

于 2012-09-10T20:45:47.563 回答
1

看起来线条符合 python文档中的描述:

使用 None 分隔符拆分空字符串或仅由空格组成的字符串返回 []

这意味着 token 是一个空数组,并且 token[0] 超出范围。

于 2012-09-10T20:48:40.153 回答