1. はじめに
今回はPythonでCSVファイルを書き込み,そのCSVファイルを読み取る方法を記載する.
2. ソースコード
- CSVファイルには,リストを使って1行ずつデータを書き込む
- 追記で書き込む場合は,
open
の引数mode
にa
を指定する - CSV書き込みの際に1行ごとの間隔が空いてしまうため(Windowsのみ?),
open
の引数newline
に""
を指定する - 作成時の文字コード(
encoding
)にutf_8
を指定しているため問題ないが,BOM付きのファイルの場合でも正常に読めるように,読み取り時の文字コード(encoding
)には"utf_8_sig"
を指定する(utf_8_sig
で,UTF-8 BOM付きを示す) - CSV書き込み時に文字化けする場合は,書き込み時の文字コード(
encoding
)にもutf_8_sig
を指定する
test.py
import csv
fle = r"C:\Users\USER\Desktop\test.csv"
with open(file=fle, mode="w", encoding="utf_8", newline="") as wf:
writer = csv.writer(wf)
writer.writerow(["1", "aaa"])
writer.writerow(["2", "bbb"])
writer.writerow(["3", "ccc"])
with open(file=fle, mode="r", encoding="utf_8_sig") as rf:
lines = csv.reader(rf)
for line in lines:
print(line)
実行結果
PS C:\Users\USER> & python c:/Users/USER/Desktop/test.py
['1', 'aaa']
['2', 'bbb']
['3', 'ccc']
PS C:\Users\USER>
3. おわりに
深くは記載しない.