【问题标题】:Importing list of IP addresses into array/list Python 2.7将IP地址列表导入数组/列表Python 2.7
【发布时间】: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


【解决方案1】:

使用每行 1 个 IP 的 txt 文件,以下内容将满足您的需求:

with open('IPs.txt', 'r') as fin:
    ips = fin.read().splitlines()

【讨论】:

  • 或者只是遍历文件中的行并对其进行操作。
猜你喜欢
  • 1970-01-01
  • 2011-05-30
  • 2011-10-06
  • 2018-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-05
  • 1970-01-01
相关资源
最近更新 更多