Pythonでファイルデータを読み込み、余分な空白をカンマ「,」へ置換し、csvファイルで見やすいようにデータを変更するプログラムを書きました。
ファイルないのデータからCSVで表示した際の余分なスペースをカンマに置換する
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できれいに表示ができるようにします。
設定のプログラムは以下を参考にしてください。
Pythonで「reモジュール」を使用して置換するプログラム
Pythonで置換のプログラムを作成する場合は「reモジュール」を使用します。
※ test.py
import re with open('file.csv', 'r', newline='') as file: text = re.sub(r's* ', ',', file.read()) print(text)
上記では、対象の文字列を置換するために、「import re」を指定します。
さらに「re.sub」で全てのスペースとその後の9泊において、カンマ「,」に置換するようにします。
※ 実行結果
Python $ python3 test.py ファイルシス,サイズ,使用,残り,使用%,マウント位置 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 Python $
実行することにより、不要なスペースがなくなり、カンマに置換されました。
reモジュールを使用して置換した結果をファイルに書き込むプログラム
次に、上記で置換した出力結果をファイルに書き込む方法を紹介します。
以下では、読み込むファイルと、書き込み先のファイルを、「with文」を使用して同時に開きます。
ファイルを読み込み、スペースをカンマに置換した後、「file_out.csv」に書きこむようにします。
※ test.py
import re with open('file.csv', 'r', newline='') as file, open('file_out.csv', 'w', newline='') as fileout: text = re.sub(r's* ', ',', file.read()) print(text, file = fileout) print('置換完了')
※ 実行結果
Python $ python3 test.py 置換完了 Python $
実行結果として、書き込み先のファイルの中身が置換されたデータが書きこまれています。
ファイルシス,サイズ,使用,残り,使用%,マウント位置 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などできれいに表示したい際は今回のコードを利用してください。
サーバーを構築するならVPSがおすすめです。
エンジニアのオンライン学習
ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。
おすすめオンライン教材 | |
自宅で学習ができるオンラインスクール | |
ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。
コメントを残す