2016-08-11 8 views
0

これは簡単なはずですが、私は脳のおならのビットを持っています。 CSVは4つの緯度と経度のペアのリストを保持しています。コードに基づいて、私は行[0]を印刷すると緯度だけを出力し、行[1]を印刷すると経度を出力します。代わりに特定の緯度/経度のペアを印刷するようにコードを書式設定するにはどうすればよいですか? CSVの2番目の緯度/経度のペア。csv.readerから印刷

import csv 

with open('120101.KAP.csv','rb') as csvfile: 
    reader = csv.reader(csvfile) 
    for row in reader: 
     print row[0] 

答えて

3

readerには各行が表示されます。

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 

2番目の行を取得したい場合は、代わりに、1を無視して、第二取得next() functionを使用カウントは0から開始するので、「2行目」はrownumber = 1です。

それとも、ただそれにリストとインデックスにすべて行を読み取ることができます:行の限られた数がある場合

reader = csv.reader(csvfile) 
rows = list(reader) 
print rows[1] # print the second row 
print rows[3] # print the fourth row 

のみ(リストにすべてをロードする)これを行います。読者に対する反復は、一度に1行しか生成せず、効率的な読み込みのためにファイルバッファを使用し、使用されるメモリの量を制限します。この方法で巨大なCSVファイルを処理することができます。

+0

これがうまく働いていた、print文のプリントを持っているどのような方法があり に反対するよう'48 0.400006749152、-71.083320495196 '] -71.083320495196 、ちょうど 48.400006749152を言う – dpalm

+1

@dpalm - '印刷 'どの例を使用しているかに応じて、 '.join(rows [1]) 'または' print'、 '。 –

+0

ありがとう、偉大な働きました – dpalm

関連する問題