为什么我不能访问列表元素

vee*_*psk 0 python list

我试图从令牌变量访问列表元素,但我继续得到错误

 print token[0]
IndexError: list index out of range'
Run Code Online (Sandbox Code Playgroud)

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

文件rebase文件的内容是:

ZraI       3 GAC'GTC        0 !  AatII                            >INV 
;ZrmI      3 AGT'ACT        0 !  ScaI,AssI,BmcAI                   >I
Run Code Online (Sandbox Code Playgroud)

而代码是:

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

Mar*_*ers 6

你遇到一个空行:

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

只需测试一下if line.strip()::

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

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