#はじめに
pythonを勉強し始めて、約1ヶ月が経った筆者が初めて作成した
パスワードツールが完成したので記事にしました。
まだまだ、改善の余地はたくさんありますのでより良いものにしていきます!
#利用環境
・windows 10
・VS code 1.51.1
#目的
テキストファイルにパスワードを三種類ランダムで生成する。
#コード
長文のため、閲覧注意願います。
コード
import random , string
password = [random.choice(string.hexdigits) for i in range(10)]
password1 = [random.choice(string.hexdigits) for i in range(10)]
password2 = [random.choice(string.hexdigits) for i in range(10)]
passwordlist = ''.join(password)
passwordlist1 = ''.join(password1)
passwordlist2 = ''.join(password2)
passwordlist = str(passwordlist)
passwordlist1 = str(passwordlist1)
passwordlist2 = str(passwordlist2)
passname = 'pass'
passname1 = 'pass1'
passname2 = 'pass2'
import pathlib
pathlib.Path("パスワード.txt").write_text('{}\n{}\n{}\n{}\n{}\n{}\n'.format(passname,passwordlist,passname1,passwordlist1,passname2,passwordlist2))
結果
pass
Q2n8d7favk
pass1
PRpnbOuTuj
pass2
0Y1hpyMkea
#解説
それでは、解説していきます。
import random , string
こちらは、pythonにrandom関数とstring関数をimportしています。
random:乱数を生成する関数。
string:文字列操作の関数。
stringは、実は今回初めて知ったのですが、私はpython標準ライブラリから確認を行いました。
python標準ライブラリ
次に、
password = [random.choice(string.hexdigits) for i in range(10)]
こちらは、変数名:passwordにランダムな英数字10文字を代入するコードです。
random.choice():()内のものをランダムに生成する。
string.hexdigits:英数字で大文字、小文字混在のものです。
for i in range(10):10回同じ処理を繰り返す。
次は少しまとめますが、
passwordlist = ''.join(password)
passwordlist = str(passwordlist)
passname = 'pass'
passwordlist = ''.join(password):変数名passwordを結合し、passwordlistへ代入
passwordlist = str(passwordlist):変数名passwordlistを文字列へ変換
passname = 'pass':変数名passnameに文字列passを代入
最後です。
import pathlib
pathlib.Path("パスワード.txt").write_text('{}\n{}\n{}\n{}\n{}\n{}\n'.format(passname,passwordlist,passname1,passwordlist1,passname2,passwordlist2))
ここに関しては、以下リンクに記載されている内容をそのまま踏襲しました。
ファイルに書き込む文字列の変数が複数ある場合
以上です。
やっぱり、一つのプログラム作るのも大変です。
今後の改訂としては、毎月更新したいので更新のタイミングを設定
自動で更新。
前月のパスワードを念のため保管する。
ここまで作ってみたいなと思います!
他にもアイデアあったり、コードもっと短く出来る方法あれば
是非教えていただけると嬉しいです!
閲覧ありがとうございました!!