csv QR Code代码插入'['和']',如何停止?

j2datikz  于 2023-09-27  发布在  其他
关注(0)|答案(1)|浏览(123)

我试图通过一个列表的循环~3,000网址,并为他们创建QR码。在一列中,我有URL,在另一列中,我有我想要的QR码文件名,以图像输出时命名。
问题是URL被转换为QR码和我的文件名都被包围在括号中。
举例来说:

URL            Filename
www.abel.com   Abel

结果为:

URL in QR Code   Filename of QR Code
[www.abel.com]   [Abel]

以下是我目前为止的代码:

import csv
import qrcode
import pandas as pd

df = pd.read_csv('QR_Python_Test.csv')

i = 1
x = df.iloc[[i]]
 
print(
x.QR_Code_Name.values)
for i in df.index:
    z = df.iloc[[i]]
    x = str(z.Link_Short.values)
    qr = qrcode.QRCode(version=5, error_correction=qrcode.constants.ERROR_CORRECT_L,box_size=5,border=2,)
    qr.add_data(x)
    qr.make(fit=True)
    img = qr.make_image()
    file_name = str(z.QR_Code_Name.values) + ".png"
    print('Saving %s' % file_name)
    image_file = open(file_name, "w")
    img.save(file_name)
    image_file.close()
file.close()

一些示例数据:

URL               Filename
www.apple.com      Apple
www.google.com     Google
www.microsoft.com  Microsoft
www.linux.org      Linux
mjqavswn

mjqavswn1#

如果DataFrame包含正确的信息,则可以使用DataFrame.itertuples
还分离了功能

  • 从文件中阅读数据
  • 生成QR码
  • 将文件保存

这样,您就可以分别测试其中的每一个

def generate_images(df):
    for row in df.itertuples():
        yield row.Filename, generate_qr(row.URL)

def generate_qr(url):
    qr = qrcode.QRCode(version=5, error_correction=qrcode.constants.ERROR_CORRECT_L,box_size=5,border=2,)
    qr.add_data(url)
    qr.make(fit=True)
    return qr.make_image()

def save_qr_code(qr_codes):
    for filename, qr_code in qr_codes:
        filename = filename + '.png'
        print('saving to file %s' % (filename,)
        with open(filename, 'wb') as file:
            qr_code.save(file)

df = pd.read_csv('my_data.csv')

qr_codes = generate_images(df)

save_qr_code(qr_codes)

相关问题