我有一个使用Python Twisted编写的简单Web服务器。用户可以登录并使用它来生成特定于该用户的某些报告(pdf格式)。该报告是通过一个.tex模板文件制作的,我根据用户替换某些内容,包括嵌入特定于用户的图形(.png或类似),然后使用命令行程序pdflatex生成pdf。
目前,图表保存在tmp文件夹中,然后在调用pdflatex之前将该路径放入.tex模板。但是当用户数量增加时,这可能会引发一大堆问题,因此我想使用临时文件(tempfile模块)而不是真正的tmp文件夹。有什么办法可以让pdflatex看到这些临时文件吗?或者我这样做是错误的吗?
答案 0 :(得分:1)
没有任何代码,很难告诉你如何,但
有什么方法可以让pdflatex看到这些临时文件吗?
是的,您可以使用named temporary file:
打印临时文件的路径>>> with tempfile.NamedTemporaryFile() as temp:
... print temp.name
...
/tmp/tmp7gjBHU
答案 1 :(得分:1)
根据评论,您可以使用tempfile.NamedTemporaryFile
。问题是,一旦关闭,它将被删除。这意味着你必须在python中引用文件的同时运行pdflatex。
作为替代方法,您可以使用随机生成的名称保存图片。 tempfile
旨在允许您以一致的方式在各种平台上创建临时文件。这不是您所需要的,因为您总是会在同一个Web服务器上运行该脚本。
您可以使用uuid
模块生成随机文件名:
import uuid
for i in xrange(3):
print(str(uuid.uuid4()))
使用随机名称明确保存图片并将其插入tex文件。 在运行pdflatex之后,你明确地必须删除该文件,这是该方法的缺点。