我想知道是否可以获取使用临时文件库制作的临时文件的文件路径。基本上,我正在尝试创建一个函数来获取一些数据,并根据所述数据生成一个临时 csv 文件。我想知道是否有办法获取此临时文件的路径?
使用tempfile.NamedTemporaryFile
创建具有名称的临时文件,然后使用该对象的.name
属性。
请注意,对于如何使用此名称存在特定于平台的限制。文档说:
当命名的临时文件仍处于打开状态时,该名称是否可以用于第二次打开文件,因平台而异(在 Unix 上可以这样使用;在 Windows NT 或更高版本上不能(。
这对于获取文件名的完整路径很好
file = tempfile.NamedTemporaryFile()
filename = file.name
输出:
/tmp/tmp_sl4v9ps
tempfile。NamedTemporaryFile有一个.dir属性,它会给你你想要的。
编辑:不,它不是.name
,@Barmar,但是查看临时文件的源代码,我也没有看到.dir
属性。但是,可以将.name
属性与os.path
的dirname
方法结合使用,如下所示:
with tempfile.NamedTemporaryFile(suffix='.csv', prefix=os.path.basename(__file__)) as tf:
tf_directory = os.path.dirname(tf.name)
无论如何,如果您需要临时文件目录的路径,您可以使用tempfile.gettempdir()