我在python中创建了一个临时目录,在这里我保存了一堆.png文件供以后使用。我的代码在我需要访问那些.png文件之前似乎工作正常-当我这样做时,我会得到以下错误:
TypeError: expected str, bytes or os.PathLike object, not TemporaryDirectory
当我在os.path.join中传递临时目录时引发错误:
import os
import tempfile
t_dir = tempfile.TemporaryDirectory()
os.path.join (t_dir, 'sample.png')
Traceback (most recent call last):
File "<ipython-input-32-47ee4fce12c7>", line 1, in <module>
os.path.join (t_dir, 'sample.png')
File "C:\Users\donna\Anaconda3\lib\ntpath.py", line 75, in join
path = os.fspath(path)
TypeError: expected str, bytes or os.PathLike object, not TemporaryDirectory
但是,使用gettempdir()似乎可以很好地工作。
import os
import tempfile
t_dir = tempfile.gettempdir()
os.path.join (t_dir, 'sample.png')
python文档建议tempfile.temporarydirectory使用与tempfile.mkdtemp()相同的规则工作。(
https://docs.python.org/3.6/library/tempfile.html#tempfile.TemporaryDirectory
)并且我认为tempfile.temporarydirectory是Python3.x的首选方法。对于这个用例,有什么想法可以解释为什么这会引发错误,或者这些方法中的一个比另一个更好吗?