カブトムシの食欲はカブトムシの10倍以上でないかと、驚愕するセレブパンダだお。
あるサイトの通貨レートを取得するスクレイピングをしています。
常に更新されるレートを一定間隔で取得してファイルに出力するという内容です。
その時、レートだけだと後からみると何の値ってなるのが嫌なので、ヘッダー(タイトル)を出力することにしました。
そのタイトルを出力する際のはまった事についてシェアします。
こんな方におすすめ
PythonでTAB区切りでファイルを出力する方法を知りたい人
TAB区切りのファイルにヘッダを出力したい人
失敗例
header_list = ["通貨ペア","取得時刻","各判定レート"]
# CSVファイルへ上書き保存
with open(self.rate_csv_file_path, 'a', newline='\n',encoding='shift_jis') as f:
writer = csv.writer(f, delimiter='\t')
if row_cnt == 0 :
writer.writerows(header_list)
writer.writerows(hour_and_rate_list_w)
row_cnt += 1
このままファイルを開いてみると
通 貨 ペ ア
取 得 時 刻
判 定 レ ー ト
GBP/AUD 2021-09-06 13:35:17 1.86260
タイトルが通貨ペア 取得時刻 判定レート出力されてほしいのに、改行されている。
しかも、各文字の間はタブで区切られている。
成功例
header_list = [["通貨ペア","取得時刻","各判定レート"]]
# CSVファイルへ上書き保存
with open(self.rate_csv_file_path, 'a', newline='\n',encoding='shift_jis') as f:
writer = csv.writer(f, delimiter='\t')
if row_cnt == 0 :
writer.writerows(header_list)
writer.writerows(hour_and_rate_list_w)
row_cnt += 1
通貨ペア 取得時刻 各判定レート
GBP/AUD 2021-09-06 13:39:22 1.86280
GBP/AUD 2021-09-06 13:39:25 1.86280
ポイントは[]の中に[タイトル1,タイトル2,タイトル3]と書くことでした。
あと、CSVではなくTAB区切りで出力したい場合
writer = csv.writer(f, delimiter='\t')
とすればOKです。簡単でしょ。
delimiter='\t'
を書かないとカンマ区切りでの出力になります。
では、まただお。