如何在django中找到tempfile的路径

Ran*_*ngh 9 python django

我正在使用像这样的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()
Run Code Online (Sandbox Code Playgroud)

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

Yuv*_*dam 13

myfile.name 会得到你的文件路径.

请注意,tempfiles之后不存在close().来自文档:

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

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

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


Eht*_*ury 8

你不能使用这个名字

myfile = tempfile.NamedTemporaryFile()
myfile.write(fdf)
myfile.seek(0)
myfile.close()
print(myfile.name)
Run Code Online (Sandbox Code Playgroud)