我需要一个随机文件名传递给运行 subprocess 的命令。
mktemp在Python 2.3中被删除,文档告诉我们使用mkstemp代替。
然而,因为我想要的只是文件名,我最终会这样做:
fd, filename = tempfile.mkstemp(prefix='source', suffix='.wav')
os.close(fd)
感觉非常不必要。
我想我可以继续关闭文件描述符或直接忽略弃用警告并使用mktemp
,但我不喜欢使用已弃用的函数,因为它们将来会被删除 - 即使它幸存了3.0。两者都不是一个好的解决方案。
任何不会导致重写的想法mktemp
?
答案 0 :(得分:0)
你在python 3的tempfile包中有一个函数NamedTemporaryFile。这个函数创建一个带有name属性的临时文件。 在Windows中,它在官方python文档https://docs.python.org/3.4/library/tempfile.html
中有一些限制我应该发表评论,因为我不知道这是否真的有帮助。在你的标题中你似乎只想生成一个名称,这个方法生成一个临时文件。但在你的例子中你创建了一个临时文件,所以..希望它会有所帮助