Python: os.system(ping) 参数无效?
我正在尝试写一个函数,这个函数里用到了os.system(ping),并且想用一个变量来代替ping的目标地址,但它就是不接受这个变量:
import os
def myping(myip):
print(myip)
ip1 = os.system("ping -c 1 myip")
print(ip1)
myping("127.0.0.1")
运行后返回的代码是512(失败,而不是0,0表示成功),然后显示“ping: unknown host myip”。根据我在os.system语句中格式化myip的方式,我还可能得到256和其他错误。我尝试了各种格式,包括加引号、加括号、用百分号等等,但我就是不知道哪里出错了。
我感觉它把我想要扫描的myip当成了一个字面字符串。请问我这里的语法有什么问题吗?谢谢。
顺便说一下,在这个函数里打印myip的值确实是127.0.0.1。
2 个回答
0
另一个选择是
ip = os.system(f'ping -c 1 {myip}')
3
你可能想把 myip
的值放到 os.system
的参数里:
ip1 = os.system('ping -c 1 {}'.format(myip))
或者(旧的写法,在 Python 3.1 中不推荐使用):
ip1 = os.system("ping -c 1 %s" % myip)