ホームページ  >  記事  >  バックエンド開発  >  私の Python コードが CSV ファイルのヘッダー行をスキップせずに処理しているのはなぜですか?

私の Python コードが CSV ファイルのヘッダー行をスキップせずに処理しているのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-30 20:49:02267ブラウズ

Why is my Python code processing the header row in a CSV file instead of skipping it?

Python で CSV ファイルを処理するときにヘッダーをスキップする

問題:

Python で CSV ファイルが処理されていますただし、最初の行 (ヘッダー行) は除外されるのではなく変更されています。

問題のコード:

<code class="python">in_file = open("tmob_notcleaned.csv", "rb")
reader = csv.reader(in_file)
out_file = open("tmob_cleaned.csv", "wb")
writer = csv.writer(out_file)
row = 1

for row in reader:
    # Row processing logic

in_file.close()    
out_file.close()</code>

問題:

「row」変数を 1 に初期化しても、ヘッダー行の処理は妨げられません。

解決策:

ヘッダー行をスキップするには、次を使用します。 next() 関数は、反復可能なリーダーを 1 項目ずつ進めます。この場合、next() の戻り値は無視できます。

修正コード:

<code class="python">with open("tmob_notcleaned.csv", "rb") as in_file, open("tmob_cleaned.csv", "wb") as out_file:
    reader = csv.reader(in_file)
    next(reader, None)  # Skip the header row
    writer = csv.writer(out_file)

    for row in reader:
        # Row processing logic</code>

代替オプション:

出力ファイルにヘッダー行が必要な場合は、ループの前に Writer.writerow() に渡すことができます:

<code class="python">with open("tmob_notcleaned.csv", "rb") as in_file, open("tmob_cleaned.csv", "wb") as out_file:
    reader = csv.reader(in_file)
    headers = next(reader, None)  # Returns the header row or None if the input is empty

    if headers:
        writer.writerow(headers)

    for row in reader:
        # Row processing logic</code>

以上が私の Python コードが CSV ファイルのヘッダー行をスキップせずに処理しているのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。