好吧所以我有代码应该通过txt文件运行并ping Ip's如果ping等于0它会对它执行'nslookup'然后它应该继续但是在它执行第一个之后它留在>上的终端好像在等待输入。在其他情况下,我的代码在txt文件中运行正常,但是一旦我在'nslookup'中添加,它就会在第一个文件后停止并等待输入。
有没有办法让它继续循环通过txt文件直到它结束?
继承我正在使用的代码我知道还有其他方法可以查找IP地址,但我想在这种情况下使用'nslookup',除非它不可能。
import os
with open('test.txt','r') as f:
for line in f:
response = os.system("ping -c 1 " + line)
if response == 0:
print os.system('nslookup')
else:
print(line, "is down!")
答案 0 :(得分:2)
这只是因为你忘了将参数传递给nslookup
如果您没有传递任何参数,程序将以交互模式启动,并具有自己的shell。
L:\so>nslookup
Default server : mydomain.server.com
Address: 128.1.34.82
>
但是使用os.system
会使你无法获得命令的输出。为此你需要
output = subprocess.check_output(['nslookup',line.strip()])
print(output) # or do something else with it
而不是os.system
命令