循環使用reader
爲您提供每一行。如果你想獲得的第二行,使用next()
function代替,忽略一個並獲得第二:
reader = csv.reader(csvfile)
next(reader) # ignore
row = next(reader) # second row
print row # print the second row.
您可以通過使用itertools.islice()
object做跳躍的你概括如下:
from itertools import islice
reader = csv.reader(csvfile)
row = next(islice(reader, rownumber)) # skip to index rownumber, read that
print row
考慮到計數從0開始,所以「第二行」是rownumber = 1
。
或者你可以只讀取所有行到一個列表和索引成:
reader = csv.reader(csvfile)
rows = list(reader)
print rows[1] # print the second row
print rows[3] # print the fourth row
只有做到這一點(加載一切都變成清單)如果有行的數量有限。對讀取器的迭代只會一次產生一行,並使用文件緩衝區進行高效讀取,從而限制使用多少內存;您可以通過這種方式處理巨大的CSV文件。
這工作就好了,有沒有什麼辦法有print語句打印說只是 48.400006749152,-71.083320495196 作爲反對 ['48 0.400006749152,-71.083320495196 '] – dpalm
@dpalm - '打印 ', '.join(rows [1])'或'print','。join(row)',具體取決於您使用的示例。感謝芽, –
,效果很好 – dpalm