CSVファイルを開いて、QRコードにするまでたったの6行でできてしまいました。
環境:
windows10 64bit home 1909
anoconda3
Python3.7
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(保存するファイル名)
コメント