【问题标题】:Generating a random file name (just the name) in Python在 Python 中生成随机文件名(只是名称)
【发布时间】:2016-06-13 14:56:56
【问题描述】:

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

mktemp 在 Python 2.3 中已弃用,文档告诉我们改用 mkstemp

但是,由于我想要的只是文件名,因此我最终会这样做:

fd, filename = tempfile.mkstemp(prefix='source', suffix='.wav')
os.close(fd)

感觉很没必要。

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

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

【问题讨论】:

    标签: python-3.x temporary-files


    【解决方案1】:

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

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

    【讨论】:

    • NamedTemporaryFile 确实打开了文件,这正是我想要避免的。使用它只是用file.close()替换os.close(fd)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-19
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多