我想从可能包含格式错误的地址或其他垃圾的列表中验证IP地址。如果字段不包含格式正确的字段,只需继续忽略该字段。在
根据How to validate IP address in Python?,似乎有两种方法可以实现这一点,REGEX或socket.inet_aton()
。在
下面是使用socket.inet_aton()
解析CSV并检查字段是否为IPv4地址的尝试。目前它打印垃圾地址或格式不正确的IP地址。有什么关于打印反向或IP地址的提示吗?在
更新
数字字段不以离散八进制表示法打印,即12345打印。如何过滤掉非八进制符号?在
for data in import_text('data.csv', ','):
try:
socket.inet_aton(data)
except socket.error:
continue
print (data)
print语句位于“except”块中,因此只有在将传递的字符串解析为IP地址时出现错误时才会调用它。在
将for循环的内容更改为:
如果没有发生异常,则执行
try/except
块的else
子句。在但是,由于您需要将它表示为一个离散的八位字节,所以最好的方法不是regex,不是
^{pr2}$socket.inet_aton
,而是一个简单的验证函数:那就是:
根据手册,
inet_aton
接受少于3个点的字符串:这可能是你身上发生的事情的一部分。在
相关问题 更多 >
编程相关推荐