【Python】ファイルデータから余計なスペース(空白)削除しカンマ区切りでCSVへ書き込むプログラム

Pythonでファイル内のデータを抽出し、csv貼り付ける際、余計な空白行があるためにきれいにシートに貼り付けられないってことがあります。

csvではエクセルなどで開く際には、デフォルトカンマ区切りでセルに貼り付けをされます。
この無駄な空白行をカンマに変更するプログラムを書きました。

ファイルデータから余計なスペース、空白を削除しカンマ「,」区切りで別ファイルへ書き込むプログラム

今回は以下のように、Linuxサーバからc取得したデータをcsvファイルに書き込みました。

※ file.csv

ファイルシス            サイズ  使用  残り 使用% マウント位置

devtmpfs                  908M     0  908M    0% /dev

tmpfs                     920M     0  920M    0% /dev/shm

tmpfs                     920M  8.6M  911M    1% /run

tmpfs                     920M     0  920M    0% /sys/fs/cgroup

/dev/mapper/centos-root   6.2G  1.5G  4.8G   24% /

/dev/sda1                1014M  192M  823M   19% /boot

tmpfs                     184M     0  184M    0% /run/user/0

このように出よく結果には空白行があり、出力結果や、テキストファイルとしては見た目が良いのですが、CSVファイルとして開くと、表示がずれて見にくくなってしまいます。

このような表示をCSVできれいに表示するために、スペースを全てカンマ「,」に変更するプログラムを書きます。

ネットワーク機器から出力したデータをCSVにきれいに表示するプログラム

以下がNW機器から取得したデータの出力結果の空白部分をカンマに変更するプログラムとなります。

import csv

with open('file.csv', 'r', newline='') as filein, \
        open('file_out.csv', 'w', newline='') as fileout:

        reader = csv.reader(filein, delimiter=' ', skipinitialspace=True)
        writer = csv.writer(fileout)

        writer.writerows(reader)

print('file_out.csvへの出力完了')

上記のプログラムの説明は以下となります。

  1. 「import csv」でcsvモジュールをインポート
  2. 「with open」で読み取り元のファイルと、書き込み先のファイルを開く
  3. csv.reader : 「delimiter=’ ‘」でスペースごとに分割されるようになる
  4. csv.reader : 「skipinitialspace=True」と指定すると、コンマの後の空白をスキップする。
  5. csv.writer(fileout) : writerオブジェクトを作成
  6. writer.writerows : 取得したデータ「reader」の内容を書き込む

プログラムの実行結果

上記プログラムの実行結果は以下となります。

※ 実行結果

Python $ python3 excel-test.py 
file_out.csvへの出力完了
Python $

出力されたファイルの中身はスペースがカンマ区切りになっています。

※ file_out.csv

ファイルシス,サイズ,使用,残り,使用%,マウント位置

devtmpfs,908M,0,908M,0%,/dev

tmpfs,920M,0,920M,0%,/dev/shm

tmpfs,920M,8.6M,911M,1%,/run

tmpfs,920M,0,920M,0%,/sys/fs/cgroup

/dev/mapper/centos-root,6.2G,1.5G,4.8G,24%,/

/dev/sda1,1014M,192M,823M,19%,/boot

tmpfs,184M,0,184M,0%,/run/user/0

エクセルシートでファイルを開くと以下のようにセルできれいに分割されて表示されています。

csvファイルをきれいに表示する際には結構便利なプログラムですので参考にしてください。




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!