| 
 
 python调用cmd命令用了两个模块:  
1.python的OS模块。  
  OS模块调用CMD命令有两种方式:os.popen(),os.system(). 都是用当前进程来调用。  
  os.system是无法获取返回值的。当运行结束后接着往下面执行程序。用法如:OS.system  ("ipconfig").  
? ? ? ?os.chdir(目录名)用来变更命令行目录  
? ? ? ?变量名=os.getcwd()获得当前目录  
  OS.popen带返回值的,如何获取返回值。如  
import os
aa="ping 192.168.0.107"
f = os.popen(aa, 'r')
aaa=f.readlines()
for line in aaa:  #按行遍历
    line = line.strip('\r\n')
    print(line)
上边代码可以执行
import os
aa="ping 192.168.0.107"
f = os.popen(aa, 'r')
#d=f.read()
#print(d)
上边代码也可以执行
#如果要是变更命令行执行目录如下:
import os
path="E:/功能测试/aa"
os.chdir(path)
aa="python aaa.py"
b=os.getcwd()
f = os.popen(aa, 'r')
print(b)
#d=f.read()
#print(d)
aaa=f.readlines()
for line in aaa:  #按行遍历
    line = line.strip('\r\n')
    print(line)  
2.管道subprocess模块。  
? ? ? ?用system.os()执行cmd命令有一点坑,cmd命令没有执行完,就直接跳到下一步了,百度了一下,大概是因为运行cmd命令时创建了另一个进程来执行,推荐使用subprocess模块。而system.os()一次性的程序。  
? ? ? 下列代码运行ping IP地址 -t  ? ? ? 能够完整在命令行处于等待状态。  ?  
import subprocess
cmd='ping 192.168.255.92 -t'
p=subprocess.Popen(cmd,shell=True)
return_code=p.wait()  #等待子进程结束,并返回状态码;  
该模块的具体说明网址https://www.runoob.com/w3cnote/python3-subprocess.html  subprocess模块的的打开固定目录的命令行方法是,在Popen方法中的cwd参数  
示例如下:  
import subprocess
cmd='python aaa.py'
p=subprocess.Popen(cmd,shell=True,cwd="E:/功能测试/aa")
return_code=p.wait()  #等待子进程结束,并返回状态码;  
                
        
        
    
 
 |