比较CSV文件上的2个列

2024-05-13 19:13:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个python脚本,其中有两个csv文件名为dhcplist.csv,和实际值.csv在

两个csv文件的每一行都包含ip地址:

例如:

dhcplist.csv:
    192.168.0.11
    192.168.0.22
    192.168.0.35
    192.168.0.41
    192.168.0.59

actualuse.csv:
    192.168.0.10
    192.168.0.22
    192.168.0.41
    192.168.0.109
    192.168.0.210

我要做的是比较每个csv文件上的行。如果两个文件之间的IP地址不匹配。我想打印出不匹配的ip地址。在

我在尝试类似的事情:

^{pr2}$

但这给了我以下的输出:

192.168.0.11 != 192.168.0.10
192.168.0.11 != 192.168.0.12
192.168.0.11 != 192.168.0.41
192.168.0.11 != 192.168.0.109
192.168.0.11 != 192.168.0.210

我怎样才能让它测试所有的ip地址dhcplist.csv,而不仅仅是“192.168.0.11”

如有任何建议/建议,将不胜感激


Tags: 文件csvip脚本文件名地址事情建议
2条回答

删除第二个for循环:

for row1 in server_dhcp_reader:
    row2 = actual_host_reader.next()

您是在一个文件中查找IP地址集,而不是在另一个文件中查找,反之亦然?

with open(server_dhcp_file, 'rU') as f1, open(actual_hosts_file, 'rU') as f2
    server_dhcp_reader = csv.reader(f1)
    actual_host_reader = csv.reader(f2))

    actual_host = {row[0] for row in actual_host_reader}
    server_dhcp = {row[0] for row in server_dhcp_reader}

print "In actual but not server", actual_host - server_dhcp 
print "In server but not actual", server_dhcp - actual_host

还请注意使用with在完成文件后立即关闭它们

相关问题 更多 >