2011-07-18 4 views
2

Pythonのランダム桁の文字と、追加の発電機

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
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)) 

注:何かのような使用をファイルに生成された文字列を保存するには

>>> print string.punctuation 
!"#$%&'()*+,-./:;<=>[email protected][\]^_`{|}~ 

string.ascii_lettersは同じですstring.ascii_uppercase + string.ascii_lowercase。

+0

Thxもこのスクリプトのためにたくさん!しかし、ここで私は次のようになります:AttributeError: 'module'オブジェクトには 'ascii_punctuation'属性がありません – digit

+0

申し訳ありません。それは句読点の前に属さない、それは単なる「句読点」です。 – Jonathanb

+0

COOL works私は以下を追加しました:f = open( 'gibberish.txt'、 'w') f.write(gibberish_maker()) f.close() – digit

4

stringモジュールは、このような特殊文字のクラスを持っています

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

ありがとうございます!ファイルと改行の出力はどうですか?私はそれをどうやってできるのか考えていますか? – digit

+0

Pythonは「with」のようなものではありません。私はSyntaxErrorを取得します:無効な構文 – digit

+0

はPython 2.6で新しく追加されました。 Python 2.5では、ファイルの先頭に 'from __future__ import with_statement'を入れてください。 – agf

関連する問題