subprocess.check_output()
- 返回值:
subprocess.check_output()返回命令的标准输出(stdout)。如果命令执行失败(返回非零退出码),则抛出CalledProcessError异常。 - 使用场景:只关心命令的输出,并且想要以字符串的形式获取它
- 错误处理:如果命令执行失败,
check_output()会抛出异常,可以通过捕获这个异常来处理错误。try: output = subprocess.check_output("dir", shell=True, text=True) print(output) except subprocess.CalledProcessError as e: print("命令执行失败")subprocess.run() - 返回值:
subprocess.run()返回一个CompletedProcess实例,该实例包含了命令的返回码、标准输出、标准错误等信息。 - 使用场景:当需要更详细地了解命令的执行情况,比如检查返回码、获取标准输出和标准错误等
- 错误处理:你可以通过检查
CompletedProcess实例的returncode属性来判断命令是否执行成功。如果设置了check=True,则命令执行失败时会抛出CalledProcessError异常。result = subprocess.run(["dir"], capture_output=True, text=True, shell=True) if result.returncode == 0: print("命令输出:") print(result.stdout) else: print("命令执行失败,返回码:", result.returncode) print("错误输出:", result.stderr) subprocess.check_output()更专注于获取命令的输出,并且只在命令执行失败时抛出异常。subprocess.run()提供了更全面的信息,包括命令的返回码、输出和错误,并且可以通过设置check参数来控制是否抛出异常。