Python 中使用 subprocess 模块打开 cmd 并执行命令

一、方法1:使用os

        os方法暂时不知道如何接收cmd返回的值

        故而不考虑cmd命令输入的返回值可使用os方法

        如果要考虑返回值可看下面的方法2:subprocess

import os

# 打开cmd,并执行"C:\Program File(x86)\ISEP\bin\unins.exe"
os.system(' "C:\\Program File(x86)\\ISEP\\bin\\unins.exe\" ')
# "和\前加上\是为了转义

# 以上是在默认路径执行cmd命令
# 如果要去指定目录下执行cmd怎么做?
os.chdir('D:/') # 先进入到D盘目录下
cmd = 'fsutil file createnew test.docx 107374' # 该命令是在当前目录下新建一个107374字节(1G)的文件
os.system(cmd) # 即可在D盘目录下执行上面的cmd命令

二、方法2:使用subprocess

import subprocess
import logging

# 检查gs驱动是否安装
def check_drv_status():
    cmd = "sc query gs"
    result = subprocess.run(cmd, capture_output=True, text=True)

    logging.info(result.stdout)  # 将运行该命令后的输出值打印出来

    if "指定的服务未安装" in str(result):
        logging.info("驱动未安装")
        return False
    else:
        logging.info("驱动已安装")
        return True

# 以上是在默认路径执行cmd命令
# 如果要去指定目录下执行cmd怎么做?
path = 'D:/'
cmd = 'adb devices'
# 加了两个参数:路径及shell窗口常开,原有的两个参数是用来接收值的
result = subprocess.run(cmd, cwd=path, shell=True, capture_output=True, text=True)
logging.info(result)
if 'device' in str(result):
    logging.info("adb连接成功")
    return True
else:
     logging.info("adb连接失败")
    return False

作者:多喝奶茶嗷

物联沃分享整理
物联沃-IOTWORD物联网 » Python 中使用 subprocess 模块打开 cmd 并执行命令

发表回复