如何获取tempfile.TemporaryFile的绝对路径?

问题描述 投票:0回答:1

有没有办法获得

tempfile.TemporaryFile
的绝对路径? name 属性返回整数,它似乎是文件描述符,但想获取实际的路径名。

import tempfile

file = tempfile.TemporaryFile(mode="w", encoding="utf-8")
print(file.name)
-----
56

寻找一种方法来获得与下面类似的结果。

file = tempfile.NamedTemporaryFile(mode="w", encoding="utf-8")
print(file.name)
-----
/tmp/tmp6ran0e71
python-3.x temporary-files
1个回答
0
投票

来自 tempfile.TemporaryFile文档:

tempfile.TemporaryFile(mode='w+b', buffering=-1, encoding=None, newline=None, suffix=None, prefix=None, dir=None, *, errors=None)

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

强调“在Unix下,文件的目录项要么根本不创建,要么在文件创建后立即被删除”,看到你显然是在Unix系统下,

tempfile.TemporaryFile
不会创建也不会维护文件的目录条目。不过,这在其他一些平台(例如 Windows)下并不相同,即使是
tempfile.TemporaryFile
也会有一条路径。

© www.soinside.com 2019 - 2024. All rights reserved.