是否可以在 Python 3 中获取临时文件的路径



我想知道是否可以获取使用临时文件库制作的临时文件的文件路径。基本上,我正在尝试创建一个函数来获取一些数据,并根据所述数据生成一个临时 csv 文件。我想知道是否有办法获取此临时文件的路径?

使用tempfile.NamedTemporaryFile创建具有名称的临时文件,然后使用该对象的.name属性。

请注意,对于如何使用此名称存在特定于平台的限制。文档说:

当命名的临时文件仍处于打开状态时,该名称是否可以用于第二次打开文件,因平台而异(在 Unix 上可以这样使用;在 Windows NT 或更高版本上不能(。

这对于获取文件名的完整路径很好

file = tempfile.NamedTemporaryFile()
filename = file.name

输出:

/tmp/tmp_sl4v9ps

tempfile。NamedTemporaryFile有一个.dir属性,它会给你你想要的。


编辑:不,它不是.name,@Barmar,但是查看临时文件的源代码,我也没有看到.dir属性。但是,可以将.name属性与os.pathdirname方法结合使用,如下所示:

with tempfile.NamedTemporaryFile(suffix='.csv', prefix=os.path.basename(__file__)) as tf:
tf_directory = os.path.dirname(tf.name)

无论如何,如果您需要临时文件目录路径,您可以使用tempfile.gettempdir()

最新更新