はじめに
検証などで気持ち大きめのデータベースが欲しいことがあるのですが、書籍/記事サンプルでは数レコードしかないことがあり。なら勉強もかねて作ってしまえ…ということで、名前の生成部分を作ってみました。
用意するもの
こちらのリポジトリから、元となるファイルをお借りします。
NamesDatabases/first names/us.txt
と NamesDatabases/surnames/us.txt
を、同じフォルダに配置しておきます。同名になってしまうので、us_firstnames.txt
と us_lastnames.txt
に変更しています。
コード
### import Modules
import random
### Preparation
# どのくらいの名前を生成するか
NUMBER_OF_NAMES = 10000
# Reference:
# https://github.com/smashew/NameDatabases
### Main Code
f = open('us_firstnames.txt')
firstnameList = f.read().split('\n')
f.close()
f = open('us_lastnames.txt')
lastnameList = f.read().split('\n')
f.close()
for i in range(NUMBER_OF_NAMES):
currentFirstnameNo = round(random.random() * len(firstnameList))
currentLastnameNo = round(random.random() * len(lastnameList))
print(firstnameList[currentFirstnameNo] + " " + lastnameList[currentLastnameNo])
とりあえずコンソールに出るので、そのままテキストに吐き出すなり Excel (csv) に貼り付けるなりできます。
もちろん、それをコード内でやる等はご自由に…