是否可以在 Python 3 中获取临时文件的路径
Is it possible to get the path of a tempfile in Python 3
我想知道是否可以获取使用 tempfile 库制作的临时文件的文件路径。基本上,我正在尝试制作一个函数来获取一些数据,并根据所述数据生成一个临时 csv 文件。我想知道有没有办法得到这个临时文件的路径?
使用tempfile.NamedTemporaryFile
创建一个带名字的临时文件,然后使用对象的.name
属性。
请注意,对于如何使用此名称存在特定于平台的限制。 documentation 表示:
Whether the name can be used to open the file a second time, while the named temporary file is still open, varies across platforms (it can be so used on Unix; it cannot on Windows NT or later).
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()
这可以很好地获取文件名的完整路径
file = tempfile.NamedTemporaryFile()
filename = file.name
输出:
/tmp/tmp_sl4v9ps
我想知道是否可以获取使用 tempfile 库制作的临时文件的文件路径。基本上,我正在尝试制作一个函数来获取一些数据,并根据所述数据生成一个临时 csv 文件。我想知道有没有办法得到这个临时文件的路径?
使用tempfile.NamedTemporaryFile
创建一个带名字的临时文件,然后使用对象的.name
属性。
请注意,对于如何使用此名称存在特定于平台的限制。 documentation 表示:
Whether the name can be used to open the file a second time, while the named temporary file is still open, varies across platforms (it can be so used on Unix; it cannot on Windows NT or later).
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()
这可以很好地获取文件名的完整路径
file = tempfile.NamedTemporaryFile()
filename = file.name
输出:
/tmp/tmp_sl4v9ps