2017-12-08 4 views
1

私はこのコードリストインデックスは(答えを探し、どれも作業)

f = open("test.txt", "r") 
xp_levelup_save=f.readlines(3) 
xp_levelup_save=[int(i.replace("\n", "")) for i in xp_levelup_save][2] 
f.close() 
print (xp_levelup_save) 

を実行しますが、readlinesが2であるとすると、エラーは、「範囲外のリストインデックス」を起動すると、[2] [1]それはうまく動作します。なぜこれが起こっているのか分かりません。誰でも私を助け、修正を見つけることができます。私はmulitple他の議論を見てみましたが、どれも はこのコードでは動作しません。 マイテキスト文書は、文書の行を取得するには、引数を必要としないこの

1 
2 
3 
4 
5 
6 
+0

'readlines(3)'を意味するものではありません、それが何を意味するのかと思う:https://stackoverflow.com/a/14541029/8881141ただ、引数なしでそれを試してみてください。 – MrT

+0

私はそのページを読んだ。私は理解できないと思いますが、もしあなたができれば、私は例を持つことができます – MapeModep

+0

@MapeModepは 'f.readlines(3)'の代わりに 'f.readlines()'を使用します。 –

答えて

0

f.readlines()のように見えます。このオプションの引数をf.readlines(n)のように指定した場合、Pythonはそれを "expect n bytes and line"と読みます。テキストファイルによっては、1行、2行、またはそれ以上の行になる可能性があります。

、テキストファイルを読み込むだけで、各ラインがあなたの変数xp_levelup_saveで文字列リストの要素として格納され

xp_levelup_save = f.readlines() 
#resume with your code 

を使用するには。

それとも単に

xp_levelup_save = [int(i.replace("\n", "")) for i in f.readlines()][2]