在Python中调用外部程序并检索输出并返回代码,可以使用subprocess
模块。subprocess
模块允许你创建新的进程、连接到它们的输入/输出/错误管道,并获取它们的返回代码。以下是一个示例代码:
import subprocess
def run_command(command):
process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
output, error = process.communicate()
return_code = process.returncode
return output.decode('utf-8'), error.decode('utf-8'), return_code
command = "echo 'Hello, World!'"
output, error, return_code = run_command(command)
print("Output: ", output)
print("Error: ", error)
print("Return Code: ", return_code)
在这个示例中,我们定义了一个名为run_command
的函数,它接受一个命令作为参数,并使用subprocess.Popen
来执行该命令。stdout
和stderr
参数设置为subprocess.PIPE
,以便我们可以捕获输出和错误。shell=True
表示在shell中运行命令。
process.communicate()
方法用于获取命令的输出和错误。process.returncode
获取命令的返回代码。
最后,我们使用decode('utf-8')
将输出和错误从字节转换为字符串,并将它们打印到控制台。
请注意,在实际应用中,使用shell=True
可能会导致安全问题。因此,最好避免在不必要的情况下使用它。
领取专属 10元无门槛券
手把手带您无忧上云