Python 3.5 CSV读取多行字段问题

Python 3.5 CSV reading multiline field issue

我正在尝试解析一个 CSV 文件,该文件在其中一个字段(字段 6)中包含多行字符串。我可以很好地阅读该字段,但是当我尝试处理该字段中的每一行时,它一次在新行上给我一个字符,而不是一次一行。知道我做错了什么吗?

def lookup(ip, ranges_csv):
    with open(ranges_csv, 'r') as csvIN:
        l = csv.reader(csvIN, dialect='excel')
        next(l)  # Skip the header row

        for row in l:
            for subnet in row[5]:
                print(subnet)

假设在 field6 中我们在换行符上分别有 192.168.0.0/24 和 192.168.1.0/24。我得到这个输出:

1
9
2
.
1
6
8

而不是:

192.168.0.0/24
192.168.1.0/24

当您使用

for subnet in row[5]:

   print(subnet)

您正在遍历一个字符串,每次 returns 一个字符。

如果你能给我们一个例子来明确你的意思会更有帮助。

这是有道理的,因为行中的每个元素都是一个字符串,当您迭代一个字符串时,您一次得到一个字符。

您可以拆分字符串以获得您想要的结果:

for row in l:
    for subnet in row[5].split('\r\n'):
        print(subnet)

注意:

\r\n 表示 windows 中的新行,如果您使用的是 linux 它应该只是 \n.