首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Python中生成随机文件名的最佳方法

在Python中生成随机文件名的最佳方法
EN

Stack Overflow用户
提问于 2012-05-08 23:03:24
回答 9查看 113.7K关注 0票数 125

在Python中,什么是好的,或者说最好的方法来生成一些随机文本,将其添加到我正保存到服务器上的文件(名称)中,以确保它不会被覆盖。谢谢!

EN

回答 9

Stack Overflow用户

发布于 2012-05-08 23:18:59

一种常见的方法是将时间戳作为前缀/后缀添加到文件名,以便与文件具有某种时间关系。如果你需要更多的唯一性,你仍然可以添加一个随机的字符串。

代码语言:javascript
复制
import datetime
basename = "mylogfile"
suffix = datetime.datetime.now().strftime("%y%m%d_%H%M%S")
filename = "_".join([basename, suffix]) # e.g. 'mylogfile_120508_171442'
票数 22
EN

Stack Overflow用户

发布于 2012-05-09 02:52:36

如果您希望将原始文件名保留为新文件名的一部分,可以使用当前时间的MD5散列生成统一长度的唯一前缀:

代码语言:javascript
复制
from hashlib import md5
from time import localtime

def add_prefix(filename):
    prefix = md5(str(localtime()).encode('utf-8')).hexdigest()
    return f"{prefix}_{filename}"

对add_prefix('style.css')的调用会生成如下序列:

代码语言:javascript
复制
a38ff35794ae366e442a0606e67035ba_style.css
7a5f8289323b0ebfdbc7c840ad3cb67b_style.css
票数 9
EN

Stack Overflow用户

发布于 2017-06-05 02:05:27

如果您不需要文件路径,而只需要具有预定义长度的随机字符串,则可以使用以下内容。

代码语言:javascript
复制
>>> import random
>>> import string

>>> file_name = ''.join(random.choice(string.ascii_lowercase) for i in range(16))
>>> file_name
'ytrvmyhkaxlfaugx'
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10501247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档