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 に答える