Pythonでランダム文字列生成

はじめに

 パスワード生成やダミー文字列生成などで、ランダム文字列を生成する機会がたまにあります。しかし文字数や使用できる文字など、都度都度変わるもの。そこで、お手入れしやすいプログラムを作成してみました。

プログラム概要

 高機能にするとメンテナンスが大変なので、パスワードに使える文字を指定してみランダムで選ぶようにしてみました。紛らわしい文字(i, l, o, I, O, 0, 1)は除外しています。また、文字数は引数で与えられるようにしました。

プログラムデプロイ

(binフォルダ作成 ディレクトリ~/binはなくとも、予めパスが通っていることが多い)
$ mkdir -p ~/bin

(プログラム本体)
$ cat << 'EOF' > ~/bin/strrand
#!/usr/bin/env python
import random
import sys

def validatearg():
    try:
        return int(sys.argv[1])
    except:
        sys.exit('Usage: strrand <length:integer>')

if __name__ == '__main__':
    length = validatearg()
    source = 'abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789'
    strrand = ''
    for i in range(length):
        strrand += random.choice(source)
    print strrand
EOF

(実行権限付与)
$ chmod a+x ~/bin/strrand

使い方

 ディレクトリ~/binにパスが通っていると、一般的なプログラムのように実行することができます。

$ strrand 8
KhZvP5cs

コメントを残す

メールアドレスが公開されることはありません。