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

163
在Python中,生成一些随机文本作为要保存到服务器上的文件名称的前缀,以确保不覆盖原有文件,有哪些好的或最佳的方法呢?谢谢!
15个回答

1

我不确定为什么没有人提到这一点,但是可以将时间缩短到微秒级别,因此,一个解决方案是:

image_name = datetime.datetime.now().strftime('%Y_%m_%d_%H-%M-%S.%f')
image_name = image_name+".jpeg" #or whatever extension is needed

输出的结果应该类似于:
2023_03_21_11-08-08.734965.jpeg

这样做的好处是文件可以按时间和/或日期排序,因为排序方式相同。


1

在某些情况下,如果您需要随机文件名具有一定的意义,请使用 faker 模块。这将生成带有常见扩展名的“有意义”的文件名。但是,该方法可能会在一段时间后出现名称冲突。我认为,在文件名前加上 uuid 可能更好。

pip install faker

然后,
from faker import Faker

fake = Faker()
for _ in range(10):
    print(fake.file_name())

链接至faker文档:https://faker.readthedocs.io/en/master/index.html


1
import random

def Generate(): #function generates a random 6 digit number
    code = ''
    for i in range(6):
        code += str(random.randint(0,9))
    return code

print(Generate()+".txt")


1
>>> import random
>>> import string    
>>> alias = ''.join(random.choice(string.ascii_letters) for _ in range(16))
>>> alias
'WrVkPmjeSOgTmCRG'

你可以将'string.ascii_letters'更改为任何字符串格式,以便生成其他任何文本,例如手机号码、身份证号码等等... 在此输入图片描述

-3
你可以使用random包:
import random
file = random.random()

文件 = str( random.random() ) - anajem
这是生成随机数,而不是随机文本。 - user1767754
谢谢。这个答案是一个很好的提交,但提供一个更完整的演示会更有帮助。 - David Golembiowski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接