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

Python中run()函数的返回值及使用方法

发布时间:2024-01-12 09:10:14

在Python中,run()函数是subprocess模块中的一个方法,用于执行外部命令。它的返回值是CompletedProcess对象,包含运行命令后的结果信息。

run()函数的基本语法如下:

subprocess.run(args, stdin=None, input=None, stdout=None, stderr=None, shell=False, cwd=None, timeout=None, check=False, encoding=None)

参数说明:

- args:要执行的命令,可以是一个字符串,也可以是一个字符串列表。

- stdin:标准输入,默认为None

- input:用于替代标准输入的数据,默认为None

- stdout:标准输出,默认为None

- stderr:标准错误,默认为None

- shell:是否通过shell执行命令,默认为False

- cwd:命令的工作目录,默认为None

- timeout:超时时间,默认为None

- check:是否检查返回码,默认为False

- encoding:设置输入/输出编码,默认为None

下面是一个示例,演示了如何使用run()函数执行外部命令并处理返回结果:

import subprocess

# 以字符串形式执行命令
result = subprocess.run("ls -l", shell=True, 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", "-l"], capture_output=True, text=True, check=True)
print(result.returncode)

# 执行命令并获取标准错误输出
result = subprocess.run(["ls", "nonexistent_file"], capture_output=True, text=True, check=True)
print(result.stderr)

# 执行命令并设置工作目录
result = subprocess.run(["ls", "-l"], capture_output=True, text=True, cwd="/path/to/directory")
print(result.stdout)

# 执行命令并设置超时时间
result = subprocess.run(["sleep", "3"], capture_output=True, text=True, timeout=2)
print(result.stdout)

在上述示例中,我们使用了subprocess.run()方法来执行不同的命令。根据需要,我们可以设置stdininputstdoutstderrshellcwdtimeout等参数,以满足具体的需求。返回的CompletedProcess对象可以通过.stdout.stderr.returncode等属性获取执行结果。