【发布时间】:2019-05-05 19:19:26
【问题描述】:
我有这个将主机名转换为 IP 的脚本。然而,当它发现一个不存在的,它就会停止。即使出现异常,我也希望它继续,但是我找不到我的方式。
#Script to resolve hostname to IP. Needs improving.
import socket
def file_len(fname):
with open(fname) as f:
for i, l in enumerate(f):
pass
return i + 1
def resolve_ip():
with open("test.txt", "r") as ins:
try:
for line in ins:
print(socket.gethostbyname(line.strip()))
except Exception:
print(line)
resolve_ip()
主要是打印所有 IP,直到出现错误。异常转换左行后如何继续?
谢谢
【问题讨论】:
-
你还没有展示驱动这个的外部循环。你能不能把
for line in ins:从try/except中提升出来? -
目前你有一个全有或全无的设置。除非文件实际上可能是空的,否则
for line in ins:看起来不会失败,只有socket.gethostbyname(line.strip())所以不清楚为什么你在try块内有循环,除非我误解了