Python 运行外部程序无非就三种:
- os.system
- os.popen
- subprocess.getstatusoutput
后来经大佬的提醒,才发现Qt中也有这方面的功能。PyQt的魅力又一次大放光彩。
一共就俩步骤:
- 创建进程:
process = QtCore.QProcess()
- 启动进程:
process.start('cmd.exe', ['dir'])
其中第一个参数是外部程序,后面的列表是给该程序的参数。
其他常用方法:
- 等它结束,超过1秒就不等了:
process.waitForFinished(1000)
- 读取输出结果:
output = process.readAll()
它是 QByteArray 类型,所以需要编码成 unicode:str(output, encoding='u8')
输出结果有中文的话,Windows 平台下要用
gbk
编码:str(output, encoding='gbk')