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(保存するファイル名)
コメント