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.
我正在尝试解析一个 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.