Python脚本,用于比较具有相同行的两个CSV文件,以用于新行/差异

时间:2017-08-10 09:50:55

标签: python-2.7 csv

我有一个nmap的python脚本每月运行以检查打开的端口。这是csv文件的样子:

host    hostname    hostname_type   protocol    port    name    state    product    extrainfo   reason  version conf    cpe
82.214.228.176  176.228.214.82.in-addr.arpa PTR tcp 21  ftp open            syn-ack     3   
82.214.228.176  176.228.214.82.in-addr.arpa PTR tcp 22  ssh open            syn-ack     3   

然后当我再次运行它并且如果新端口打开则会添加另一行:

82.214.228.178  hnsmonitor.direcpceu.com    PTR tcp 443 https   open            syn-ack     3   

那么你能帮我一个示例脚本来比较旧的old.csvnew.csv并打印到csv文件中添加的新行吗?

2 个答案:

答案 0 :(得分:1)

如果您愿意使用pandas,可以这样做:

import pandas as pd

old = pd.read_csv('old.csv', sep=';')
new = pd.read_csv('new.csv', sep=';')
final = new[~new.isin(old)].dropna()
final.to_csv('diff.csv', sep=';')

答案 1 :(得分:0)

旧csv entries = list_a

新csv entries = list_b

这些列表将具有csv中数据的唯一标识符。

列出项目

从list_b中删除list_a项目以获取新添加条目的代码:

for item in list_a:
    while list_b.count(item) > 0:
        list_b.remove(item)