在Python

时间:2016-06-13 14:56:57

标签: python-3.x temporary-files

我需要一个随机文件名传递给运行 subprocess 的命令。

mktemp在Python 2.3中被删除,文档告诉我们使用mkstemp代替。

然而,因为我想要的只是文件名,我最终会这样做:

fd, filename = tempfile.mkstemp(prefix='source', suffix='.wav')
os.close(fd)
感觉非常不必要。

我想我可以继续关闭文件描述符或直接忽略弃用警告并使用mktemp,但我不喜欢使用已弃用的函数,因为它们将来会被删除 - 即使它幸存了3.0。两者都不是一个好的解决方案。

任何不会导致重写的想法mktemp

1 个答案:

答案 0 :(得分:0)

你在python 3的tempfile包中有一个函数NamedTemporaryFile。这个函数创建一个带有name属性的临时文件。 在Windows中,它在官方python文档https://docs.python.org/3.4/library/tempfile.html

中有一些限制

我应该发表评论,因为我不知道这是否真的有帮助。在你的标题中你似乎只想生成一个名称,这个方法生成一个临时文件。但在你的例子中你创建了一个临时文件,所以..希望它会有所帮助