カテゴリー
コンピューター

【Python 3】ファイルを比較して指定したファイルにのみ存在する行を抽出するお気楽コード

やりたいこと

  • big.txt にのみ存在する行を抽出したい。
    • ddd、eee を抽出したい。
  • small.txt にのみ存在する行は対象外
    • bbb は small.txt にのみ存在するが、いらない。
aaa
ccc
ddd
eee
aaa
bbb
ccc

Python 3 コード

  • readlines()
    入力ストリームから全ての行を読み込み、行のリストとして返します。
  • difference(other, …)
    set に含まれて、かつ、全ての other に含まれない要素を持つ、新しい集合を返します。
def make_lines_set(txt):
    f = open(txt)
    lines = f.readlines()
    sets = set(lines)
    f.close()
    return sets

bigs = make_lines_set('big.txt')                      
smalls = make_lines_set('small.txt')

results = bigs.difference(smalls)
for result in results:
    print(result)

実行結果

 >>>
========= RESTART: C:¥Work¥difference.py =========
eee

ddd

 >>>

おわりに

初めての Python でしたので、コードはもちろんエディタの使い方や実行の仕方といったところもわかりませんでしたの><。

参考ページです。とても役に立ちました!ありがとう存じます!

以上です。

「【Python 3】ファイルを比較して指定したファイルにのみ存在する行を抽出するお気楽コード」への2件の返信

コメントを残す