\誰でもできる!/エックスサーバーを半額以下安くする方法

【Python】QRコードを大量に作る

プログラミング
記事内に広告が含まれています。

前回はPythonで簡単にQRコードを生成する方法を紹介しました。
イベントなどで大量のQRコードが必要になった際に、1つ1つ設定して生成するのが手間なので、大量に作れる方法を紹介します。

準備

CSVファイルを作成する

urlfile_name
https://www.google.co.jpGoogle
https://www.yahoo.co.jpYahoo! JAPAN
https://www.bing.comMicrosoft Bing
example.csvの例

example.csvを元にQRコードにしたいURLとファイル名を作ってください。
ここではGoogle・Yahoo!・BingをQRコードにしたいと思います。

必要なライブラリをインストール

前回はPyQRCodeとpypngをインストールしました。
今回はさらにCSVファイルを扱うので、pandasをインストールしてください。

pip install PyQRCode
pip install pypng
pip install pandas

必要なライブラリをインポート

osは生成したQRコードを保存するディレクトリを作るために使います。
これはインストールしなくても使うことができます。

import os
import pyqrcode
import pandas as pd

生成したQRコードを保存するディレクトリを作成

予め作っておいてもいいのですが、大抵忘れてしまってエラーになってしまうので、存在しなければ自動で作成するようにします。
普通にmakedirsを使うと、既に存在する場合はエラーでるので、exist_ok=Trueを付けてあげます。

result_directory = 'result'
os.makedirs(result_directory, exist_ok=True)
スポンサーリンク

QRコードを大量に生成する

CSVファイルを読み込む

pandasで作成したCSVファイルを読み込ませます。

df = pd.read_csv('example.csv')
df_records = df.to_dict(orient='records')
print(df_records)

df_recordsの中身が配列となって、CSVファイルのヘッターと値が結び付けられます。

[
  {
    'url': 'https://www.google.co.jp/',
    'file_name': 'Google'
  },
  {
    'url': 'https://www.yahoo.co.jp/',
    'file_name': 'Yahoo! JAPAN'
  },
  {
    'url': 'https://www.bing.com/',
    'file_name': 'Microsoft Bing'
  }
]

for文で生成する

df_recordsの数だけ、QRコードを生成します。
QRコードは前回の記事と同じように生成します。

for record in df_records:
    url = record['url']
    file_name = record['file_name'] + '.png'
    save_path = f'{result_directory}/{file_name}'
    code = pyqrcode.create(url, error='L', version=2, mode='binary')
    code.png(save_path, scale=10, module_color=[0, 0, 0], background=[255, 255, 255])

まとめ

CSVファイルにてファイル名とURLの一覧を作ることで、大量のQRコードを生成することができました。
前回のように5行ではないですが、割と短いコードで作ることができました。