55

重複の可能性: CSV データを処理するとき、データの最初の行を無視するにはどうすればよいですか?

Pythonを使用してCSVファイルを開きます。数式ループを使用していますが、ヘッダーがあるため最初の行をスキップする必要があります。

これまでのところ、私はこのようなものを覚えていますが、何かが欠けています.誰かが私がやろうとしていることのコードを知っているのだろうか.

for row in kidfile:
    if row.firstline = false:  # <====== Something is missing here.
        continue
    if ......
4

3 に答える 3

130

最初の行をスキップする方法はたくさんあります。Bakuriu の発言に加えて、次のように付け加えます。

with open(filename, 'r') as f:
    next(f)
    for line in f:

と:

with open(filename,'r') as f:
    lines = f.readlines()[1:]
于 2013-02-03T16:06:40.857 に答える
72

これを行う最善の方法は、ファイル オブジェクトをモジュールに渡した後にヘッダーをスキップすることです。csv

with open('myfile.csv', 'r', newline='') as in_file:
    reader = csv.reader(in_file)
    # skip header
    next(reader)
    for row in reader:
        # handle parsed row

これにより、複数行の CSV ヘッダーが正しく処理されます。


古い答え:

おそらく、次のようなものが必要です。

firstline = True
for row in kidfile:
    if firstline:    #skip first line
        firstline = False
        continue
    # parse the line

readline同じ結果を達成する別の方法は、ループの前に呼び出すことです。

kidfile.readline()   # skip the first line
for row in kidfile:
    #parse the line
于 2013-02-03T16:03:04.717 に答える
28

csvreader.next() 現在の方言に従って解析された、リーダーの反復可能なオブジェクトの次の行をリストとして返します。

于 2013-02-03T17:04:29.273 に答える