Python 3.4.3:os.system不运行我的ping"命令"

时间:2016-08-11 14:08:14

标签: python

我让这个脚本只是在点击它之后编写主机的ip或名称....但是在python 3.4.3中,代码根本就不运行ping;我可以输入ip,但它不运行ping ....

我试图双向进入。例如:" 127.0.0.1"或127.0.0.1

它在python 2.7中运行,但希望它在更新版本的python中运行...

我的Windows是7 64位

你向我推荐/建议什么?

import os
a = input("put the name / ip of the machine you want to ping:\n\n")
p = "ping -t "
os.system(p+a)

我应该只使用python 2.7,它运行良好吗???

3 个答案:

答案 0 :(得分:1)

input在python 2.7和python 3之间有所不同。

在python 2中它会评估返回值,我打赌你在简单的引号之间输入你的字符串。

在python 3中,它返回一个字符串(如raw_input所做的那样)

只需输入没有引号的值,它就会起作用。

答案 1 :(得分:1)

Popen解决方案:

from subprocess import Popen, PIPE
p = Popen(['ping', '-c 1', 'www.google.com'], stdout=PIPE)
while True:
    line = p.stdout.readline()
    if not line:
        break
    print(line)

sh.ping解决方案:

import sh
for line in sh.ping('www.google.com', '-c 1', _err_to_out=True, _iter=True, _out_bufsize=100):
    print(line)

os.system解决方案:

import os
os.system('ping -c 1 www.google.com')

如果os.system()生成任何输出,它将被发送到解释器标准输出流。

我使用选项-c只发送一个数据包。 要构造命令字符串,您可以使用以下方法:

a = input("put the name / ip of the machine you want to ping:\n\n")
cmd = 'ping -c 1 %s' % a
os.system(cmd)

答案 2 :(得分:0)

实际上,我放弃尝试..... 我将在python 2.7中使用,它运行得很好....

由于