如果liniute[k]
被撫養TypeError: list indices must be integers, not _io.TextIOWrapper
,這意味着k
是一個文件對象,而不是一個整數。
您發佈的代碼實際上並沒有這樣做。如果你真正的代碼做,你幾乎可以肯定做的兩兩件事之一:
for k in range (0,50):
print(liniute[g]) # oops, g instead of k
for k in range (0,50):
# long complicated body that does lots of stuff...
k = open("otherfile") # oops, reused k to mean two things
# ...
print(liniute[k])
使用有意義的變量名稱,而不是隨機的一個個字母的名字,使象這樣的錯誤了很多困難創造,也更容易了很多調試。
同時,該代碼:
for a, k in range (0,50):
print(lines[a],liniute[k])
...確實有兩個錯誤的,但仍然沒有錯誤您發佈。
首先,有一個明顯的IndentationError
。
二,range(0, 50)
迭代整數,而不是整數對,所以你不能指定每一個到a, k
。這就像寫作a, k = 1
。
但是你真的不需要兩個單獨的變量。只需使用相同的變量兩次:
for a in range(0, 50):
print(lines[a], liniute[a])
這顯然不是一件你_real_代碼,因爲它缺少至少一個'「'和意志只是一個'SyntaxError',請發佈一個[最小的,完整的,可驗證的例子](http://stackoverflow.com/help/mcve) – abarnert
同時,在你的_real_代碼中,你正在做一些你在這個例子中沒有做,比如將循環變量重新分配給文件對象(在這段代碼中'k ='內'k = g'的等價物),或者只是使用了錯誤的變量(比如'liniute [g ]'而不是'liniute [k]')但是,由於你發佈的代碼並不存在這個錯誤,所以我們不能告訴你確切地說它在你的真實代碼中的位置。 – abarnert
我發佈了在第一部分中工作的部分代碼,並且我說我希望它在同一行上打印,第一部分打印第一個文件,然後打印第二個。我不知道如何合併印刷在一起。我四處搜尋,看到你可以使用兩個變量進行循環,但它不適合我。對於混淆,很抱歉 – boxxybabee