插入'['和']'的QR码代码,如何阻止?
问题描述:
我想通过约3,000个URL的列表循环并为它们创建QR码。在一列中我有URL,而在另一列中,我想要在输出为图像时命名QR码文件名。插入'['和']'的QR码代码,如何阻止?
问题是转换为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
感谢你的帮助, 我
答
如果您的数据框包含正确的信息,您可以使用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)
+0
我对qr.add_data(x)和qr.add_data(url)做了一些小的修改,以使最终的代码可以工作,但是这方面的专业知识当然是您的。谢谢! – SDS
您的样本数据不会出现是一个CSV文件,并没有在你的代码出现,产生你给的输出“出来的” 。 无论如何,对这两个值调用'str()'看起来就像是一个大红旗:我猜测你会得到一个列表而不是单个值,可能是因为你调用了'df.iloc()'一张名单,但因为我对大熊猫一无所知,这只是一个猜测。 – Duncan
@邓肯,我的文件真的是一个CSV文件,我只是把一些数据放在那里有帮助。我最多使用Pandas,这就是为什么我以这种方式导入它,如果通常的Python'read_CSV()'是我的游戏的正确解决方案 - 并且根本不使用Pandas是正确的方法没关系,我想知道正确的方法来做到这一点。感谢您的评论,帮助我澄清事情,我。 – SDS