继续循环
Continuing the loop
好的,所以我有代码应该 运行 通过 txt 文件并 ping Ip,如果 ping 等于 0,它会对它执行 'nslookup' 然后它应该继续但在它完成终端中的第一个之后,它就留在 > 上,就好像在等待输入一样。在其他情况下,我的代码 运行s 通过 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!")
那只是因为你忘记将参数传递给 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
命令
好的,所以我有代码应该 运行 通过 txt 文件并 ping Ip,如果 ping 等于 0,它会对它执行 'nslookup' 然后它应该继续但在它完成终端中的第一个之后,它就留在 > 上,就好像在等待输入一样。在其他情况下,我的代码 运行s 通过 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!")
那只是因为你忘记将参数传递给 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
命令