9

我正在使用这样的pdftk

pdftk template.pdf fill_form /temp/input.fdf output /temp/output.pdf

现在这工作正常

但现在我用这个生成了临时文件而不是 /temp/input.fdf

myfile = tempfile.NamedTemporaryFile()
myfile.write(fdf)
myfile.seek(0)
myfile.close()

现在我不知道如何将 myfile 作为输入传递给 pdftk

4

2 回答 2

13

myfile.name将为您提供文件路径。

注意tempfiles 之后不存在close()。从文档:

 tempfile.TemporaryFile([mode='w+b'[, bufsize=-1[, suffix=''[, 
    prefix='tmp'[, dir=None]]]]])

返回一个可以用作临时存储区域的类文件对象。该文件是使用 mkstemp() 创建的。一旦关闭它就会被销毁(包括当对象被垃圾回收时的隐式关闭)。在 Unix 下,文件的目录条目在文件创建后立即被删除。其他平台不支持;您的代码不应依赖于使用此函数创建的临时文件,该文件在文件系统中具有或不具有可见名称。

来源:http ://docs.python.org/2/library/tempfile.html

于 2012-12-05T06:18:40.720 回答
8

你不能用

myfile = tempfile.NamedTemporaryFile()
myfile.write(fdf)
myfile.seek(0)
myfile.close()
print(myfile.name)
于 2012-12-05T06:12:14.487 回答