2013-03-28 15 views
0

我有一個包含一系列數字的列表。這個數字列表對應於.dat文件中的一行。如何使用列表[0,1,2,3,4,5,6,9,4],然後打印出每個數字對應的.dat文件中的行。數字列表對應於文件中的一行

+0

'線= f.readlines();我在索引中的行[i] –

回答

2

你會讀取線到內存中,到一個列表中,然後索引到該列表:

with open('somefile') as fileobj: 
    lines = list(fileobj) 

for index in indices: 
    print lines[index] 
+0

'lines = list(open('somefile'))'。你有沒有理由推銷這個構造,而不是使用'with'? – Abhijit

+0

@Ahhijit:我很懶,這是一個簡單的單線程,在CPython中工作得很好。 –

0
file = [ l for l in open('file.name') ] 
for i in list: 
    print file[i] 
+0

-1。不要使用名稱'file'和'list',因爲它們會破壞內置的內建函數。另外,我認爲你的意思是'對於我在文件中:'。最後,文件具有'readlines'方法,所以你不必在這裏使用列表理解。 –

+0

不,「我在列表中」是正確的。 – georg

+0

@ thg435:啊。現在我看到這裏有一個隱式的'list = [0,1,2,3,4,5,6,9,4]'。但其他兩個問題仍然存在,仍然是-1。 –

相關問題