我无法通过 ping 插入带有 python subprocess.Popen 的模式...使用 2.6。
测试:打开python解释器...
import subprocess
a = subprocess.Popen(['ping', '-c 1', '-p ff', '172.16.1.1'],subprocess.PIPE)
结果 ... ping:模式必须指定为十六进制数字。
我将 ff 替换为:“f”、“23”、23、0x23 和一系列内容。我只想看看 shell 认为它得到了什么。但是 shell=True 并没有像我期望的那样,a.communicate() 给出 (none,none)
请您参考如下方法:
确保将所有“单词”拆分到它们自己的列表条目中:
a = subprocess.Popen(['ping', '-c', '1', '-p' 'ff', '172.16.1.1'],subprocess.PIPE)
# PING 172.16.1.1 (172.16.1.1) 56(84) bytes of data.
按照你的方式,你的命令被执行为
ping -c\ 1 -p\ ff 172.16.1.1
(参数和它们的值之间的空格被转义)
