Python 随机数字字母及附加生成器
我想用这段代码生成一个长度为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个字符就换一行。
如果有人能帮忙就太好了。
谢谢大家的时间。
2 个回答
5
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()
3
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 的组合。