关于python:两个文件求差集

10次阅读

共计 585 个字符,预计需要花费 2 分钟才能阅读完成。

在平时的做业务需要时会遇到这样一种状况,有两份文件 A 和 B,存的是用户账号,须要在 A 文件中剔除 B 文件中已存在的账号,这种状况下应该如何解决呢?

个别这种状况下会抉择采纳脚本语言解决,比方 shell 或者 python。接下来介绍两种语言的解决办法:

例:

文本 A:

aaa
bbb
ccc
111
222

文本 B:

bbb
ccc
111

1. 采纳 awk

$awk 'NR==FNR{a[$1]=$1 } NR>FNR{if(a[$1] ==""){print $1}}' B A 

后果:

aaa

222

2. 采纳 python

#!/usr/bin/python
# -*- coding: utf-8 -*- 

import os

src = []
screen_data = []
dest_data = []

#原数据
for line in open("src.txt"):
    src.append(line.strip())

#筛选名单
for line in open("screen_data.txt"):
    screen_data.append(line.strip())

#指标数据    
for data in src:
    if data in screen_data:
        print data
        
print len(dest_data)

#导出到文件
with open("dest_data.txt","w") as f:
    for data in dest_data:
        f.write(data + '\n')

后果:

aaa

222

正文完
 0