繁体   English   中英

在reportlab中保存变量文件名

[英]saving a variable filename in reportlab

我的代码不断出现错误“字符串.pdf没有属性”。 它可以用作静态文件名,但不能用作变量。 我已经阅读了有关打开文件名的其他示例,但是它们都不像reportlab需要那样内联。

    testid = datetime.datetime.now().strftime("%y%m%d_%H%M%S")
    basename = str("cert")
    filename = "_".join([basename, testid])
    print filename
    canvas = canvas.Canvas(filename.pdf, pagesize=letter)

这是一个工作示例,在最后一行失败,但是应该演示该问题:

#!python2
#coding=utf-8

import datetime

testid = datetime.datetime.now().strftime("%y%m%d_%H%M%S")
basename = str("cert")
filename = "_".join([basename, testid])
print filename
print "filename.pdf"
print filename.pdf

输出:

cert_170508_152300
filename.pdf
Traceback (most recent call last):
  File "test.py", line 11, in <module>
    print filename.pdf
AttributeError: 'str' object has no attribute 'pdf'

您正在传递一个不存在的对象(*作为参数,其中需要一个字符串。

(*实际上,由于filename存在(一个字符串),因此它假定您正在尝试访问其不存在的属性 (就像错误所述)。

这应该工作:

canvas = canvas.Canvas(filename, pagesize=letter)

这将附加.pdf后缀:

canvas = canvas.Canvas(filename + '.pdf', pagesize=letter)

您应该将变量filename与扩展名.pdf结合使用

canvas = canvas.Canvas(filename+'.pdf', pagesize=letter)

如果变量不包含扩展名

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM