FOR周期问题,以及IP地址的相关性

时间:2018-10-08 07:19:56

标签: python firewall correlation

我是python的新手,试图创建一个python3脚本,该脚本以这样的CSV格式输入输入(这是防火墙规则集):

Source;Destination;Service;Action;Comment
10.0.0.0/8 172.16.0.0/16 192.168.0.0/24 23.2.20.6;10.0.0.1 10.0.0.2 10.0.0.3;udp:53 tcp:53;accept;No.10: ID: INC0000000001

并关联其中包含的IP。

我创建了以下基础:

import ipaddress
import csv
with open('BE-E2_D1_Source.csv', 'rt') as f:
    reader = csv.reader(f)
    for row in reader:
        str(row)
        x=';'.join(row)
    for row2 in x:
        y=' '.join(row)
        print (y.split(" "))

第一期:这将返回一个输出,该输出返回CSV文件中包含的行的60倍。我不明白为什么。你能帮忙吗?

第二个问题:非常感谢您提供输入以便关联源和/或目标内的IP地址。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

首先,文件中的数据不会以逗号分隔,这意味着您只需循环遍历第二个循环中的所有字符即可。通过打印row2自己看看。

我相信您正在尝试为文件中的每一行数据按照<fieldname>: <data>的格式打印内容。

您不需要导入的模块。以下脚本可以正常工作。

with open('BE-E2_D1_Source.csv', 'r') as f:
    lines = [i.strip() for i in f.readlines()]
    header = lines[0].split(';')
    rows = [i.split(';') for i in lines[1:]]

    for row in rows:
        for idx, field in enumerate(row):
            print(f"{header[idx]}: {field}")
        print()