漢字コード対応版QRコード生成
WidnowsのPythonでファイルを読む際、漢字コードが交じるとSJISで読んでいるのか、UTF-8で読んでいるのかを明らかにしないとエラーが起きる。
なので以下のようなコード読んでみないとどちらかがわからない。
mkqr.py
import sys
import os
import qrcode as qrl
args = sys.argv
fn = ''
enc='utf-8'
# -s でSJIS -uでUTF-8のQRを出力する
for arg in args:
if arg=='-s':
enc='shift-jis'
elif arg=='-u':
enc='utf-8'
else:
if os.path.exists(arg):
fn=arg
else:
print("{} Not found".format(arg))
buf=''
try:
with open(fn) as f:
buf=f.read()
except:
with open(fn, encoding="UTF-8") as f:
buf=f.read()
encbuf=buf.encode(enc)
qr=qrl.QRCode()
qr.add_data(encbuf)
qr.make()
img=qr.make_image()
img.save('QR.png')
テキストファイルのエンコードを先に調べればもっとスマートに書けるにかも・・・
とりあえず動いたのでまずは良し!!
バグってたらごめんなさい。
ソースはご自由に変更してくださいね。