1.python调用外部exe程序有若干方法
1.1 os.execl
这个命令会将参数中的可执行文件加载到当前进程中执行,这样python解释器就结束了,所以不适合我们使用。
1.2 os.system
这个命令是用cmd工具去执行参数中的命令,命令执行后python解释器会挂起,直到cmd中执行的命令结束,是阻塞的。
1.3 os.startfile
命令以非阻塞方式执行参数中的可执行文件,并且在脚本中没法得到运行的结果。
1.4 os.popen 返回的是 file read 的对象,对其进行读取 read()
的操作可以看到执行的输出。popen本身是不阻塞的,要通过标准io的读取使它阻塞。但是如果有读到了内容,就会继续执行下去,不管参数中的程序是否结束。
2.此次使用os.system调用DiskIO.exe测试工具,DiskIO.exe对磁盘进行顺序读、写、验证;随机读、写、验证。
调用DiskIO.exe的批处理写发如下:
diskio.exe /d
"USBSTOR\DISK&VEN_GENERIC-&PROD_SD/MMC&REV_1.00\20100818841300000&0"
/b 32KB /t 00:00:10:00 /c sr;sw;sv;xr;xw;xv /a /o
解释如下:
/d 为测试目标,在device manager中磁盘device instance path中获取
/b 为测试block,默认使用32KB
/t 为测试时间,00:00:10:00表示测试十分钟(时间至少设置5分钟)
/c 为测试内容
/a 运