PR

Python CSVファイルからQRコード作成が6行で完成!

スポンサーリンク
この記事は約4分で読めます。

CSVファイルを開いて、QRコードにするまでたったの6行でできてしまいました。

環境:
windows10 64bit home 1909
anoconda3
Python3.7

私のpycharmのCSVはWindows-31J (MS932)で保存しているので、読み出しの際はencodeが必要なため、まずcsvファイルをencodeして読み書きできるようにPycharmに記載するコードを記述する必要があります。

そこで、参考にさせて頂いたのは、下記サイトです。ありがとうございました。
参考サイト
Pythonで日本語を使う
Python標準ライブラリ

まず、インポートするのは

import sys
import codecs
import csv
import os
import qrcode

次にCSVファイルをutf-8でencodeして読み込むには

通常CSVファイルを開く際のコードの第2引数にnewline=''と第3引数にencoding='utf-8'を追加

 

with open('csvのファイル名', newline='', encoding='utf-8') as csv_file:

次にcsv.rederメゾットで読み込み変数(reader)へ一旦代入

reader = csv.reader(csv_file)

次に文字列で読み込みをしたいのでjoinで読み込み qr_string へ文字を代入
参考サイト
[python]リストの中身を文字列に変換する

 for row in reader:
    qr_string = ','.join(row)

リスト型でよければ、以下のコードでも変換できます。

qr_string = str(row)

次にQRコードの画像データの生成をし画像ファイルとして保存すれば完了

# QRコード画像データ生成
img = qrcode.make(qr_string)
# 画像ファイルとして保存
img.save(file_name)

 


保存されるdirectoryを追加していますが参考にどうぞ

# coding: utf-8
import sys
import codecs
import csv
import os
import qrcode

# 保存するQRコードのファイル名
file_name = 'qr_code.png'
# csvファイルをutf-8にコーディングして開く
with open('test_8.csv', newline='', encoding='utf-8') as csv_file:
    # CSVファイルの読み込み
    reader = csv.reader(csv_file)
    # joinでリストから文字列へ変換
    for row in reader:
        qr_string = ','.join(row)
# QRコード画像データ生成
img = qrcode.make(qr_string)
# 画像ファイルとして保存
img.save(file_name)
# 現在のディレクトリ位置を取得
current_dir = os.getcwd()
# 終了メッセージ出力
print("「{0}\\{1}」にQRコード画像を保存しました".format(current_dir, file_name))

 


これはたったの4行でできてしまいました。

#保存するQRコードのファイル名
    # インプット入力
    print("QRコードに変換したい文字列を入力してください: ")
    # キーボードから入力させる
    qr_string = input('')
    # QRコード画像データ生成
    img = qrcode.make(qr_string)
    # 画像ファイルとして保存
    img.save(保存するファイル名)

コメント

タイトルとURLをコピーしました