【发布时间】:2017-12-15 21:42:25
【问题描述】:
我正在做一个小项目,以获取 IP/子网列表并将它们转换为单独的 IP 地址和子网掩码。我正在使用 netaddr 完成更改,现在正在将如下所示的 IP 列表导入数组或列表。
13.107.6.152/31
13.107.19.10/31
23.103.160.0/20
23.103.224.0/19 ...等
我从一个 txt 文件开始尝试逐行导入,并尝试使用带有空格分隔的 csv 文件以及放置逗号并将其用作分隔符。
这是我最近使用它作为 csv 文件的工作
13.107.6.152/31,13.107.19.10/31,23.103.160.0/20
with open('FileLocation.csv', 'rb') as f:
reader = csv.reader(f, delimiter=',')
ipArray = list(reader)
但是当我这样做时:
print len(ipArray)
print ipArray
它只返回 1,然后是 IP 地址块。
有没有更好的方法来格式化 csv 或文本文件中的 IP 以帮助我将它们插入到数组或列表中?我的目标是让每个单独的 IP 都在自己的位置,这样我就可以循环运行它。
谢谢:)
【问题讨论】:
-
检查您在阅读器中的分隔符,以及您在源文件中的分隔符
-
A csv.reader 对行进行操作 - 它为每一行返回一个列表。如果你只有一行,你会得到一个项目列表;您应该能够遍历该列表。
-
CSV 是一种表格格式。如果您无法解释 IP 地址位于第 1 列、第 2 列等中的含义,那么您可能需要重新格式化您的数据。
-
信不信由你,there is a library for that... :-)
标签: python arrays python-2.7 csv