Случайная буква Python и дополнительный генератор - PullRequest
2 голосов
/ 18 июля 2011

Я хотел бы сгенерировать строку случайного числа длиной 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 ]

4 голосов
/ 18 июля 2011

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()
2 голосов
/ 18 июля 2011
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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...