【发布时间】:2018-07-27 04:18:46
【问题描述】:
我有一个 .csv 文件,其中包含以下行:NAME、LOCATION、IP Address。 IP Address 行中有许多 IP,它们由空格分隔,最多 5 个字符。例如:
编辑:
Name,Location,IP Address
Router,China,10.10.10.1 10.10.10.2 10.10.10.3 10.10.10.4 10.10.10.5
Switch,USA,192.168.1.1 192.168.1.2 192.168.1.3
等等..
我希望所有 IP 都位于 IP Address 列下的单独行中。这就是我希望输出的样子:
Name,Location,IP Address
Router,China,10.10.10.1
Router,China,10.10.10.2
Router,China,10.10.10.3
Router,China,10.10.10.4
Router,China,10.10.10.5
Switch,USA,192.168.1.1
Switch,USA,192.168.1.2
Switch,USA,192.168.1.3
我一直在尝试做.split(),但它给了我一个错误。谁能帮帮我?
使用csv.DictReader 在此处读取我的 csv 文件。
【问题讨论】:
-
@FlorianWeimer 糟糕,我在编辑时犯了一个错误。但是这些 IP 之间的所有空格都是 5 个字符的空格。只需将它们视为 3 个不同的列。
-
@FlorianWeimer 是的,它只是一个普通的 csv,我手动编辑了它,这就是它变得有点难以理解的原因。
-
第二个@FlorianWeimer 的观点,如果您的数据是空格分隔的,那么一种解决方案是合适的。如果它是固定宽度,另一个是合适的。如果它实际上像您的问题现在显示的那样有逗号,那么一种完全不同的方法将起作用。毫不奇怪,在处理数据时,精确的数据格式很重要。
-
Karan:只需在文本编辑器中打开 csv 文件,然后将其复制并粘贴到您的问题中。还要具体说明发生的错误。
-
@martineau 知道了!我从来不知道如何像这样将 csv 数据放在 SO 上,我的错,我没有正确阅读规则。我现在已经编辑了。 :)
标签: python python-3.x csv