辞書ファイルから、引数に与えられた文字列から、n文字違う文字列を探し出して列挙するコードです。使い方は、$ ./kol.py ことば
または、$ ./kol.py ことば n
として下さい。nを省略するとnは1となります。
辞書ファイルフォーマット
あいうえお\n
かきくけこ\n
さしすせそ\n
または、
abcde\n
fghij\n
klmno\n
のように、辞書ファイルは、\nで区切られたテキストファイルなら良いです。
出力見本は、jm.txtという、jmdicから抽出したひらがなの名詞ばかりの日本語辞書を使いましたが、辞書ファイル自体は、著作権の関係で、公開できません。辞書ファイルを変えたかったら、コード中の「辞書ファイル」というコメントのある行のファイル名を変えて下さい。
コード
kol.py
#!/usr/bin/python3
import sys
args=sys.argv
ins=args[1]
if len(sys.argv)==3:
n=int(args[2])
else:
n=1
ld = open ("jm.txt") # 辞書ファイル
lines = ld.readlines()
ld.close()
for line in lines:
l=len(line)-1
d = 0
if l==len(ins):
i = 0
while(i<l):
if line[i]!=ins[i]:
d+=1
i+=1
if d==n:
print(line.rstrip('\n'))
実行結果(出力見本)
$ ./kol.py ことば
けとば
こうば
こしば
ことう
ことく
ことざ
ことし
ことじ
ことに
ことね
ことの
ことみ
ことり
こはば
こまば
そとば
はとば
まとば
$