2016-12-06 4 views
0

私はオリジナルのテキストを作成するためにファイルから一意の単語とそのインデックスのリストを取るプログラムを開発しようとしていますが、整数を元に戻すことはできませんstrから。ファイルから整数値を読み取る

file=open("compressed_file_words.txt", "r") 
listofwords = file.read() 
file=open("compressed_file_word_positions.txt", "r") 
positions = file.read() 

for i in positions: 
    reconstructed_text = reconstructed_text + listofwords[i] + " " 

これはエラー TypeError例外を次のように失敗します。文字列のインデックスは整数

でなければなりませんどのように私は、strはint型に変換できますか?私は様々な方法を試してみましたが、どれも動作するようには思えない

+1

あなたの 'i'変数は整数ではありません。 'listofwords'に整数でインデックスを付ける必要があります。 – 3novak

+0

この 'listofwords [i]'は、読み込まれたファイルから行を取得する予定ですか? – Nicarus

答えて

0

これを試してみてください:

for i in range(0, len(positions)): 
    reconstructed_text = reconstructed_text + listofwords[i] + " " 

あなたの問題はpositionsが実際に整数ではないので、iは整数ではないということです。 forは、文字どおりpositionのすべての要素を反復し、forブロックの目的でその要素の名前をiとします。あなたのブロックは整数を仮定しているが、文字列(ファイルからの行)を取得しているので、イテレータはpositionsの長さに結びついた整数にする必要があります。

おそらくreadを悪用しており、実際にはreadlinesを探していることに注意してください。

関連する問題