欢迎访问宙启技术站
智能推送

在Python中使用CMD模块来执行系统命令行命令

发布时间:2023-12-14 22:43:47

在Python中,可以使用subprocess模块来执行系统命令行命令。subprocess模块提供了一个run函数,该函数允许我们执行命令并返回命令的输出。下面是使用subprocess模块执行系统命令行命令的示例代码:

import subprocess

# 执行简单的命令,如打印当前工作目录
result = subprocess.run(['pwd'], capture_output=True, text=True)
print(result.stdout)

# 执行带参数的命令,如列出当前目录下的文件
result = subprocess.run(['ls', '-l'], capture_output=True, text=True)
print(result.stdout)

# 获取命令的返回值
result = subprocess.run(['ls'], capture_output=True, text=True)
exit_code = result.returncode
print(exit_code)

# 处理命令执行的异常情况
try:
    subprocess.run(['cat', 'nonexistfile.txt'], capture_output=True, text=True, check=True)
except subprocess.CalledProcessError as e:
    print(e.returncode)
    print(e.stderr)

# 使用管道连接命令
result = subprocess.run(['ls', '-l'], capture_output=True, text=True)
files = result.stdout.split('
')
for file in files:
    print(file)

# 获取命令执行的程序输出
result = subprocess.run(['python', '--version'], capture_output=True, text=True)
print(result.stderr)

在上述示例中,我们使用subprocess.run()函数执行了不同的系统命令。subprocess.run()函数接受一个命令的列表作为参数,并可使用capture_outputtext等关键字参数来控制输出和输入的格式。capture_output=True意味着我们想要捕获命令的输出,这样可以使用result.stdoutresult.stderr属性来获取输出和错误信息。text=True意味着命令的输出和输入都将以文本字符串的形式返回。通过subprocess.run()函数的返回值,我们可以获取命令的返回值(result.returncode)和执行过程中的其他信息。

需要注意的是,subprocess.run()函数默认会在命令执行失败时抛出异常。我们可以使用check=False来禁用此行为。另外,可以使用subprocess.check_output()函数来仅获取命令的输出而不抛出异常。

总结:subprocess模块提供了执行系统命令行命令的功能。我们可以使用subprocess.run()函数来执行命令,并使用相关的属性来获取命令的输出和其他信息。此外,subprocess模块还提供了其他函数和类,用于更复杂的命令行操作,如处理标准输入输出、管道连接命令等。