Tips

IT技術系Tips

ファイルを読み込んで重複を削除する(Python)

ソース

In [1]: import codecs
In [2]: set([x for x in codecs.open("yakuman.txt", "r", "utf-8")])
Out[2]: 
{'九蓮宝燈\n',
 '四暗刻\n',
 '四暗刻単騎\n',
 '国士無双\n',
 '国士無双13面\n',
 '地和\n',
 '大三元\n',
 '大三元 四暗刻\n',
 '大三元 字一色\n',
 '大四喜\n',
 '大四喜 字一色\n',
 '天和\n',
 '字一色\n',
 '小四喜\n',
 '小四喜 字一色\n',
 '数え役満\n',
 '清老頭\n',
 '緑一色\n'}

In [3]: codecs.open("test.txt", "w").writelines(set([x for x in codecs.open("yakuman.txt", "r", "utf-8")]))

In [4]: cat test.txt
小四喜 字一色
大三元 字一色
大四喜
地和
国士無双
四暗刻単騎
大三元
九蓮宝燈
清老頭
国士無双13面
大三元 四暗刻
四暗刻
緑一色
字一色
天和
大四喜 字一色
数え役満
小四喜

途中でさりげなく登場してるcatは、catコマンドのalias的存在。

In [6]: %alias
Total number of aliases: 16
Out[6]: 
[('cat', 'cat'),
 ('clear', 'clear'),
 ('cp', 'cp -i'),
 ('ldir', 'ls -F -G -l %l | grep /$'),
 ('less', 'less'),
 ('lf', 'ls -F -l -G %l | grep ^-'),
 ('lk', 'ls -F -l -G %l | grep ^l'),
 ('ll', 'ls -F -l -G'),
 ('ls', 'ls -F -G'),
 ('lx', 'ls -F -l -G %l | grep ^-..x'),
 ('man', 'man'),
 ('mkdir', 'mkdir'),
 ('more', 'more'),
 ('mv', 'mv -i'),
 ('rm', 'rm -i'),
 ('rmdir', 'rmdir')]

モノホンのコマンドとして実行したい時は!catとする。
最初に!をつければ、headとかpingとか、osのコマンドが使える。

データ

四暗刻単騎
国士無双
大三元
国士無双
国士無双
小四喜
小四喜
大三元
....以下略