ytooyamaのブログ

サーバ構築とか、仕事で発見したこととか、趣味のこととかを書いています。

Python3でQRコードを生成してみる

テストアプリケーションを作成するために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であるか検証する必要があると思いますが、自分だけで使うならまあいいかなという感じです。