FOR 循环和 IP 地址关联问题

Issue with FOR cycles, and correlation of IP addresses

我是 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(" "))

第 1 期:此 returns 输出是 CSV 文件中包含的行的 returns 60 倍。我无法理解为什么。你能帮忙吗?

第 2 期:非常感谢您提供的信息,以便关联源 and/or 目标中的 IP 地址。

非常感谢任何帮助。

首先,您文件中的数据没有用逗号分隔,这意味着您只需在第二个循环中遍历所有字符即可。通过打印 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()