テストアプリケーションを作成するためにPython3でQRコードを生成する方法を調べてみたのですが、Python3のqrcodeモジュールとpillowモジュールの導入だけで簡単に使えることがわかりました。というわけで、いつものようにまとめます。
今回はmacOSでPython 3.6.6を使っています。
インタラクティブモードで実行してみる
まず、pip3コマンドで必要なモジュールを追加します。
% pip3 install qrcode pillow
あとはこんな感じです。
% python3 Python 3.6.6 (v3.6.6:4cf1f54eb7, Jun 26 2018, 19:50:54) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import qrcode >>> img = qrcode.make("http://www.google.com") >>> img.save("qr_code.png") >>>
img.save行を打ち込んでEnterを押した時点でqr_code.pngという名前の画像ファイルがカレントディレクトリーに保存されたはずです。 iOS 11以降のiPhoneのカメラアプリで読み取ると、Safariでサイト「http://www.google.com」にアクセスできます。
スクリプトにしてみた
いちいちURLを書き換えるのも面倒なので、スクリプトを実行すると文字列の入力を促して、その入力値を使ってQRコードを生成するようなスクリプトにしてみました。
こんなファイルを作ります。
% cat qrcode-make2.py #!/usr/bin/env python3 # need pip3 install qrcode pillow import qrcode print("URL?") url = input(">> ") print("Make the", url, "'s QR Code.") img = qrcode.make(url) img.save("qr_code.png")
実行してみます。
% python3 qrcode-make2.py URL? >> http://www.yahoo.co.jp Make the http://www.yahoo.co.jp 's QR Code. % ls |grep png qr_code.png
先ほどと同様に生成されたQRコードをiPhoneのカメラアプリで読み取ると、Safariでサイト「http://www.yahoo.co.jp」にアクセスできます。これでQRコード生成アプリなんか不要になりますね!
実際に使うには入力したデータがURLであるか検証する必要があると思いますが、自分だけで使うならまあいいかなという感じです。