【问题标题】:Multiple qrs were generated with the list, but I want to save them with the same name as the list列表生成了多个 qrs,但我想用与列表相同的名称保存它们
【发布时间】:2021-11-12 05:39:33
【问题描述】:
import pandas as pd
import qrcode

df = pd.read_excel("Manpower.xls")
df = df.drop(range(31,389))
lista = df.values.tolist()


for row in lista:
  
  qr =qrcode.QRCode(version=1,box_size=2)
  qr.add_data(row)

  qr.make(fit=True)

  img = qr.make_image()
  img.save(lista+".png")

问题是当我保存img时​​它只出现一个,并没有保存列表的名称。

【问题讨论】:

  • 所有文件都保存在同一个变量中,您将整个列表作为文件名输出。你想要img.save(row + ".png")吗?
  • 是的,我希望每一行都有一个二维码和一个文件。(对不起,我第一次编码):C

标签: python pandas qr-code


【解决方案1】:

您正在使用相同的名称保存所有文件,这是您的问题。如果您对具有 QR 码中信息名称的 QR 码名称感到满意,那么您只需在循环中将每个文件的名称更改为 row

import pandas as pd
import qrcode

df = pd.read_excel("Manpower.xls")
df = df.drop(range(31,389))
lista = df.values.tolist()


for row in lista:
  
  qr =qrcode.QRCode(version=1,box_size=2)
  qr.add_data(row)

  qr.make(fit=True)

  img = qr.make_image()
  img.save(row + ".png")

但是,还有其他选择。例如,可能希望将它们存储为QR1.pngQR2.png 等。 在这种情况下,您可以执行类似的操作

#[...same as above before start of loop]
filename = "MyQRCodeFilename"
counter = 0
for row in lista:
  #[...same as above in loop]
  counter += 1 #augment counter by 1
  img.save(f"{filename}_{counter}.png")

或者,如果你想要前导零,你可以这样做,

   img.save(f"{filename}_{counter:04}.png")

另一种选择可能是您想要一个时间戳:

import datetime
#[...everything the same as before...]
   img.save(f"{filename}_{datetime.datetime.now().strftime('%Y-%m-%d-%H:%M:%S')}.png")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-03
    • 2020-03-22
    • 2020-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多