1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

漢字コード対応版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')

テキストファイルのエンコードを先に調べればもっとスマートに書けるにかも・・・

とりあえず動いたのでまずは良し!!
バグってたらごめんなさい。
ソースはご自由に変更してくださいね。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?