当我们需要调用系统的命令的时候,最先考虑的os模块。用os.system()和os.popen()来进行操作。
但是这两个命令过于简单,不能完成一些复杂的操作,如给运行的命令提供输入或者读取命令的输出,
判断该命令的运行状态,管理多个命令的并行等等。
这时subprocess中的Popen命令就能有效的完成我们需要的操作。
import winsound
import subprocess
mp3 = r'c:\Windows Logon Sound.wav'
ip = '128.0.0.2'
p = subprocess.Popen(["ping.exe", ip],stdin = subprocess.PIPE,stdout = subprocess.PIPE,\
stderr = subprocess.PIPE,shell = True)
result = p.stdout.read()
#find用法:如果找不到返回-1;否则返回出现位置
if result.find('100%') != -1:
winsound.PlaySound(mp3,winsound.SND_NODEFAULT)