我想使用以下代码生成N长度的随机数字符串:
import random
import string
N=512
print ''.join(random.choice(string.ascii_uppercase + string.digits + string.ascii_lowercase) for x in range(N))
缺少的是我想添加“特殊字符,例如”@,;:。§$%& /(!“” 并且我想用一个换行符输出.txt文件,例如10,15个符号。
任何帮助都会很棒。
感谢您的时间。
答案 0 :(得分:4)
string
模块有一个特殊字符类:
>>> print string.punctuation
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
要将生成的字符串保存到文件,请使用以下内容:
N=512
chars_per_line = 15
s = ''.join(random.choice(string.digits + string.ascii_letters + string.punctuation) for i in xrange(N))
fh = open('filename', 'w')
try:
fh.writelines([s[i:i+chars_per_line]
for i in range(0, N, chars_per_line)])
finally:
fh.close()
答案 1 :(得分:2)
import random
import string
allowable_gibberish = string.ascii_letters + string.digits + string.punctuation
def gibberish_maker(gibberish=allowable_gibberish,n=512,new_line_every=15):
str = ''.join(random.choice(gibberish) for x in range(n))
return '\n'.join(str[i:i+new_line_every] for i in xrange(0, len(str), new_line_every))
注意:string.ascii_letters与string.ascii_uppercase + string.ascii_lowercase相同。