adbird(広告鳥) 備忘録

csvの任意のセルから値を抽出し、htmlに挿入する

全部、ChatGPTさんに教えてもらいました。

LinuxUbuntu)環境だけならBashだけでいいんだけど、最近、(Linuxを使っていない)Windows環境の人たちとも共同で作業することが多くなってきたので、「Pythonで書けないかなぁ…、でも、Pythonの書き方全く知らないし…、そうだ、ChatGPTさんに聞いてみよう」と思い立って…。

僕はPythonについては本当に知識ゼロだったのに、ChatGPTさんとやり取りしながら、比較的簡単にスクリプトが作れちゃったよ…。

いや、本当にプログラミングに関しては、ChatGPTさん、マジ便利。

Pythonスクリプト

以下を sample.csv と同じディレクトリ(フォルダ)内に test.py として保存。

import csv
import sys

# csvファイルからC1とB2の値を取得
with open(f'{sys.argv[1]}') as f:
    rows = list(csv.reader(f))
c1_value = rows[0][2]
b2_value = rows[1][1]

# HTMLの作成
html = f"""<html>
<body>
<table>
<tr><td>見出し1</td><td>{c1_value}</td></tr>
<tr><td>見出し2</td><td>{b2_value}</td></tr>
</table>
</body>
</html>"""

# HTMLのファイルへの書き込み
with open('python_output.html', 'w') as f:
    f.write(html)

端末で次を実行。

$ python3 test.py sample.csv

python_output.html というファイルが同じフォルダ内にできているはず。

Bashスクリプト

以下を sample.csv と同じディレクトリ(フォルダ)内に test.sh として保存。

#!/bin/bash

# csvファイルからC1とB2の値を取得
c1_value=$(cut -d ',' -f 3 $1 | head -n 1)
b2_value=$(cut -d ',' -f 2 $1 | sed -n '2p')

# HTMLの作成
cat <<EOF > bash_output.html
<html>
<body>
<table>
<tr><td>見出し1</td><td>${c1_value}</td></tr>
<tr><td>見出し2</td><td>${b2_value}</td></tr>
</table>
</body>
</html>
EOF

端末で次を実行。

$ bash test.sh sample.csv

bash_output.html というファイルが同じフォルダ内にできているはず。