ランダムな文字列をたくさん作る必要があったので、Pythonで文字数やレコード数、文字種を指定しランダムな文字列を生成するスクリプトを作成してみました。
このプログラムは、コマンドラインで指定された文字数分のランダムな文字列を生成し標準出力に出力します。
生成するレコード数、生成に使用する文字種もコマンドライン引数で指定することができます。
コマンドは下記のように指定します。
python genrndstr.py [文字数] [レコード数] [生成に使用する文字種]
# # 指定文字数のランダムな文字列を指定回数分標準出力に出力するプログラム # # This software is distributed under the license of NYSL. # http://www.kmonos.net/nysl/ # # python genrndstr.py [文字数] [レコード数] [生成に使用する文字種] import random import string import sys # 指定文字列を使ったletters_count文字のランダムな文字列を生成する def genrndstr(letters_count, letters): return ''.join([random.choice(letters) for i in range(letters_count)]) # 引数から出力する文字数、レコード数、文字種を取得 # 文字種が省略された場合のデフォルトは英大文字小文字+数字 if len(sys.argv) < 2: l = 8 r = 1 s = string.ascii_letters + string.digits else: # 文字数 if sys.argv[1].isdigit(): l = int(sys.argv[1]) else: print('length is not integer.') exit(-1) # レコード数 if len(sys.argv) > 2: if sys.argv[2].isdigit(): r = int(sys.argv[2]) else: print('record count is not integer.') exit(-1) else: r = 1 # 文字種 if len(sys.argv) > 3: s = str(sys.argv[3]) else: s = string.ascii_letters + string.digits # rレコード分出力する for i in range(r): print(genrndstr(l, s))
Please give us your valuable comment