コンテキスト:mafファイル(複数のアラインメントファイル)を個々のfastaファイルに変換しようとしています。私は修正する方法がわからないという同じエラーに陥っています。これはPythonには比較的新しいためです。私のコードは以下の通りです:文字列インデックスの範囲外のエラー:mafファイルからfastaファイル
open_file = open('C:/Users/Danielle/Desktop/Maf_file.maf','r')
for record in open_file:
print(record[2:7])
if (record[2] == 'Z'):
new_file = open(record[2:7]+".fasta",'w')
header = ">"+record[2:7]+"\n"
sequence = record[46:len(record)]
new_file.write(header)
new_file.write(sequence)
new_file.close()
else:
print("Not correct isolate.")
open_file.close()
私が手にエラーがある:
IndexError
Traceback (most recent call last)
2 for record in open_file:
3 print(record[2:7])
----> 4 if (record[2] == 'Z'):
5 new_file = open(record[2:7]+".fasta",'w')
6 header = ">"+record[2:7]+"\n"
IndexError: string index out of range
私があれば、else文を削除した場合、私は期待通りに動作しますが、私はで始まる特定の種をフィルタリングしたいと思います文字Z.
誰かが私がこのように文字Zで始まる文字列だけを選択できない理由を説明するのに役立つなら、それは素晴らしいでしょう!前もって感謝します。
「記録」はどのようにフォーマットされていますか?いくつかのレコードの長さが<= 2、おそらく空白のようですか? –
より一般的には 'recordEnter:string index out of range'エラーが発生します。' record'が3個よりも短く、Pythonはアイテム '[2]' – patrick
にアクセスできません。 – PYA