pythonでランダムな文字列を取得したい
スポンサーリンク
uuid 使えよ!というつっこみが聞こえてきそうです。
でも、10文字程度のお手軽に使えるランダム文字列がほしいときってありますよね。
アカウント登録する際にメール送信で使うキーとか、uuid 使う人ってあんまりいませんし。
というわけで、そんなときに使える random_string 関数を作ってみました。
import random def random_string(length, seq='0123456789abcdefghijklmnopqrstuvwxyz'): sr = random.SystemRandom() return ''.join([sr.choice(seq) for i in xrange(length)])
実際に実行してみる。
>>> random_string(10) 'krz58li2iv' >>> random_string(20) '4eriz092ovu9tfv2hg78'
うんうん、いい感じですね。
ただちょっと、デフォルト引数のseq
が汚いのが気になるので以下のように改善してみました。
import random import string def random_string(length, seq=string.digits + string.ascii_lowercase): sr = random.SystemRandom() return ''.join([sr.choice(seq) for i in xrange(length)])
定数ばんざい!
ランダム文字列に大文字アルファベットも含めたい、というあなたは string.ascii_lowercase
の代わりに string.ascii_letters
をご利用いただくとよさそうです。