2016-12-06 61 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] + " " 

失敗與以下錯誤 類型錯誤:字符串索引必須是整數

如何獲得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的每個元素,並將該元素命名爲i用於for塊的用途。由於你的塊假設一個整數,但得到一個字符串(文件中的一行),你需要讓你的迭代器的長度爲positions

請注意,您可能錯用了read,實際上是在尋找readlines