2013-02-14 38 views
0

我有一個大的文件,只會發佈精簡版一塊吧:如何讀取文件的特定部分

World population in thousands 
Source: United Nations, DEMOBASE 

Country/ISO country code/UN Code/Population 1950/Population 2012 
---------------------------------------------------------------- 
Afghanistan/AF/4/8151/33397 
Albania/AL/8/1215/3227 
Algeria/DZ/12/8753/36486 
American Samoa/AS/16/19/71 
Andorra/AD/20/6/88 

我的問題是我怎麼讀5個第一排,就在信息有關國家的信息就開始了。

我試着像成才:

file=open("wordpop.txt","r") 
for i in range[0:5]: 
    rows = file.read() 
print(rows) 
+1

'因爲我在範圍內( 5)' – millimoose 2013-02-14 17:07:48

回答

2

range()是一個函數,而不是一個列表。 range(5)會更好,但是你只是讀取文件5次(四次讀取空的結果)。

使用readline()讀取文件一個線,和一個列表理解讓行成一個列表容易:

with open("wordpop.txt","r") as infile: 
    rows = [infile.readline() for _ in range(5)] 
print(rows) 
-1

嘗試:

for line in file.readlines()[:5]: 
    print line 
+1

這不必要地將整個文件讀入內存。 – millimoose 2013-02-14 17:25:41

+0

是的,但我認爲只要文件不是絕對巨大,它看起來更清潔/更清晰 – 2013-02-14 17:41:32