Python:os.system(ping)参数不起作用?

时间:2014-05-14 18:03:41

标签: python arguments ping function os.system

我正在尝试创建一个使用os.system(ping)和变量的def语句,并且它不想接受变量:

import os

def myping(myip):
    print(myip)
    ip1 = os.system("ping -c 1 myip")
    print(ip1)
myping("127.0.0.1")

这将返回512的代码(失败,而不是0,这是成功),然后" ping:未知主机myip"。根据我在os.system语句中格式化myip的方式,我也可以得到256另一个错误。我已经尝试了各种格式化方法,包括引号,括号,百分号等等,我只是不确定我做错了什么。

我可以告诉我,我认为我想要扫描myip(文字字符串)。这里有什么语法错误?感谢。

顺便说一句,def语句中的print(myip)确实给了我127.0.0.1。

2 个答案:

答案 0 :(得分:2)

您可能希望将myip的值放入os.system的参数中:

ip1 = os.system('ping -c 1 {}'.format(myip))

或(旧样式,在python 3.1中弃用):

ip1 = os.system("ping -c 1 %s" % myip)

答案 1 :(得分:0)

另一个选择是

ip = os.system(f'ping -c 1 {myip}')