Pythonで複数のCSVファイルから先頭行を削除する方法

今回紹介するPythonスクリプトは、カレントディレクトリ内の全てのCSVファイルから先頭行を削除するプログラムです。

CSVファイルはテキスト形式のデータを格納するための一般的なフォーマットであり、先頭行には通常ヘッダ情報が含まれています。 プログラムは以下の手順で動作します。

  1. カレントディレクトリ内のファイルを取得し、拡張子が「.csv」のファイルを特定します。
  2. 各CSVファイルを読み込み、先頭行を除いた残りの行を新しいファイルに書き込みます。
  3. 書き込まれた新しいファイルは、新しいフォルダ「csv」に保存されます。

これにより、複数のCSVファイルの先頭行を削除し、新しいCSVファイルとして保存します。データの前処理や分析の際に便利なプログラムです。

スポンサーリンク

全CSVファイルを取得し、先頭の行だけを削除するpythonコード

import csv, os

csv_files = []

# カレントディレクトリのリストから.csvファイルだけを取得する
for file in os.listdir():
    if file.endswith('.csv'):
        csv_files.append(file)
 
# csv_filesをひとつずつ読み込みモードで開きcsv_readerオブジェクトを作成
for file in csv_files:
    read_file = open(file)
    csv_reader = csv.reader(read_file)

    # 出力用のCSVファイルを書き込みモードで開く
    output_file = open(os.path.join('csv', file), 'w', newline='')
    file_writer = csv.writer(output_file)

    for row in csv_reader:
        if csv_reader.line_num > 1:  # ヘッダ行を除いてデータを書き込む
            file_writer.writerow(row)

output_file.close()
スポンサーリンク

プログラムコードの解説

csv_files リストは、カレントディレクトリ内のすべてのファイル名から、拡張子が .csv のファイル名を抽出して格納します。

for ループは、カレントディレクトリ内の .csv ファイル(csv_files)に対して1つずつ処理

ファイルを読み込みモードで開き、csv_reader オブジェクトを作成します。これにより、CSVファイルの内容を読み込むことができます。

output_file は、新しいフォルダ csv 内に出力用のCSVファイルを書き込みモードで開くためのファイルハンドルです。os.path.join('csv', file) は、現在の作業ディレクトリにある “csv” フォルダに、元のファイル名 file を結合して新しいファイルのパスを作成します。つまり、このコードは新しいファイルを作成するために “csv” フォルダのパスを指定しています。

file_writer オブジェクトを使用して、csv_reader から読み込んだデータを新しいCSVファイルに書き込みます。csv_reader.line_num > 1 はヘッダ行を除いてデータを書き込むための条件です。

まとめ

このPythonスクリプトは、カレントディレクトリ内の複数のCSVファイルから先頭行を削除し、新しいフォルダ “csv” に新しいCSVファイルとして保存するプログラムです。CSVファイルはテキスト形式のデータを格納するための一般的なフォーマットであり、データ前処理や分析に便利なツールとして活用できます。


コメント

タイトルとURLをコピーしました