Skip to content

Instantly share code, notes, and snippets.

@mzsm
Last active October 10, 2022 13:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mzsm/842f3b7a6569c52e4e9e6c00de8ec9c6 to your computer and use it in GitHub Desktop.
Save mzsm/842f3b7a6569c52e4e9e6c00de8ec9c6 to your computer and use it in GitHub Desktop.
BOOTHの宛名印刷用CSVをクリックポストのまとめ申込CSVに変換するやつ
#! /usr/local/bin/python3
# -*- coding:utf8 -*-
# BOOTH2clickpost
# Author: mzsm
# License: NYSL <http://www.kmonos.net/nysl/>
import csv
import re
from optparse import OptionParser
def main():
usage = 'usage: %prog [options] sourcefile'
parser = OptionParser(usage)
parser.add_option('-c', '--content', dest='content',
help='内容物', default='書籍')
(options, args) = parser.parse_args()
if len(args) < 1:
print('変換元のCSVファイルを指定してください')
exit(1)
input_file = args[0]
export_file = re.sub(r'(\..+?)$', r'_export\1', input_file)
try:
f = open(input_file)
except FileNotFoundError:
print('変換元のCSVファイルが存在しません')
exit(1)
of = open(export_file, 'w', encoding='cp932')
writer = csv.writer(of)
header = [
'お届け先郵便番号', 'お届け先氏名', 'お届け先敬称',
'お届け先住所1行目', 'お届け先住所2行目', 'お届け先住所3行目', 'お届け先住所4行目', '内容品'
]
writer.writerow(header)
for idx, input_row in enumerate(csv.reader(f)):
if not idx:
continue
output_row = [input_row[8], input_row[12], '様']
output_row.extend(input_row[9:12])
output_row.append('')
output_row.append(options.content)
writer.writerow(output_row)
of.close()
if __name__ == '__main__':
main()
@mzsm
Copy link
Author

mzsm commented Oct 25, 2017

使い方

  • スクリプトに実行権限をつけておく
    • $ chmod -x booth2clickpost.py
  • BOOTH管理画面の注文一覧から「宛名印刷用CSV」をダウンロードする
  • ダウンロードしたCSVファイルのパスを引数に指定してスクリプトを実行する
    • $ booth2clickpost.py ~/Downloads/booth_orders_yyyymmddhhmmss.csv
  • 元のファイル名の拡張子の前に_exportが付いたファイル名でCSVが出力される
    • 上の例なら~/Downloads/booth_orders_yyyymmddhhmmss_export.csvに出力される
  • クリックポストにログインし、「まとめ申込」から、出力されたCSVを選択して申し込む

いろいろ

  • 「内容品」はデフォルトでは「書籍」となります。オプション-c 内容物または--content=内容物で変更できます。
  • 住所の長さは確認していません
  • 「お届け先敬称」は「様」で固定です。「御中」にしたい行がある場合は出力されたCSVを手動で書き換えてください。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment