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()方法来执行不同的命令。根据需要,我们可以设置stdin、input、stdout、stderr、shell、cwd、timeout等参数,以满足具体的需求。返回的CompletedProcess对象可以通过.stdout、.stderr、.returncode等属性获取执行结果。
