python执行linux命令返回值
-
在Python中执行Linux命令并获取返回值,可以使用`subprocess`模块。`subprocess`模块提供了执行外部命令的功能,并且可以捕获标准输出、错误输出和返回状态等信息。
下面是一个简单的示例代码:
“`python
import subprocessdef execute_command(command):
process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, error = process.communicate()
return output.decode(‘utf-8’), error.decode(‘utf-8’), process.returncode # 返回输出结果、错误信息和返回状态码# 执行命令
command = “ls -l” # 要执行的Linux命令
output, error, returncode = execute_command(command)# 输出结果
if returncode == 0:
print(“输出结果:”)
print(output)
else:
print(“错误信息:”)
print(error)
“`在上面的示例中,`execute_command`函数接收一个命令作为参数,使用`subprocess.Popen`来执行命令,并通过`communicate`方法获取输出结果、错误信息和返回状态码。然后根据返回状态码进行相应的处理。
使用这种方式,你可以在Python中执行任意的Linux命令,并获取其返回值。注意,`shell=True`参数将命令传递给shell进行解释,因此可以直接执行命令中的管道、重定向等操作。如果不需要执行shell命令,可以将`shell`参数设置为False。
2年前 -
在Python中执行Linux命令并获取其返回值可以使用`subprocess`模块。`subprocess`模块是Python用来创建新进程,与子进程进行通信和执行外部命令的标准库。
下面是使用`subprocess`模块执行Linux命令并获取返回值的几种方法:
1. 使用`subprocess.run`函数:
“`
import subprocessresult = subprocess.run([‘ls’, ‘-l’], capture_output=True, text=True)
print(result.returncode) # 返回值
print(result.stdout) # 标准输出
print(result.stderr) # 标准错误输出
“`在上面的例子中,`subprocess.run`函数接收一个命令和参数的列表,`capture_output=True`表示将标准输出和标准错误输出都保存在`stdout`和`stderr`属性中,`text=True`表示以文本形式获取输出。
2. 使用`subprocess.Popen`类:
“`
import subprocessprocess = subprocess.Popen([‘ls’, ‘-l’], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = process.communicate()
returncode = process.returncodeprint(returncode) # 返回值
print(stdout.decode(‘utf-8’)) # 标准输出
print(stderr.decode(‘utf-8’)) # 标准错误输出
“`在上面的例子中,`subprocess.Popen`类创建一个新的子进程来执行命令,`stdout=subprocess.PIPE`和`stderr=subprocess.PIPE`表示将标准输出和标准错误输出保存在`stdout`和`stderr`属性中,`communicate()`方法阻塞等待子进程结束并返回输出结果。
3. 使用`os.popen`函数:
“`
import oscommand = ‘ls -l’
result = os.popen(command).read()
print(result)
“`在上面的例子中,`os.popen`函数执行命令并返回一个文件对象,通过读取文件对象的内容获取命令的输出结果。
4. 使用`subprocess.check_output`函数:
“`
import subprocessresult = subprocess.check_output([‘ls’, ‘-l’]).decode(‘utf-8’)
print(result)
“`在上面的例子中,`subprocess.check_output`函数执行命令并返回命令的输出结果,通过`decode(‘utf-8’)`将字节流转换为字符串。
5. 使用`os.system`函数:
“`
import oscommand = ‘ls -l’
os.system(command)
“`在上面的例子中,`os.system`函数执行命令并将结果直接打印到控制台,返回值可通过`$?`获取。
2年前 -
在Python中执行Linux命令并获取返回值有多种方法,下面将介绍三种常用的方法:
1. 使用subprocess模块的run函数
2. 使用os模块的popen函数
3. 使用os模块的system函数# 1. 使用subprocess模块的run函数
import subprocessdef execute_command(command):
try:
result = subprocess.run(command, shell=True, capture_output=True, text=True)
return result.returncode, result.stdout
except subprocess.CalledProcessError:
return -1, “Failed to execute command”# 以ls命令为例,执行ls命令并获取返回值
return_code, output = execute_command(“ls”)
print(“返回值:”, return_code)
print(“输出结果:”, output)# 2. 使用os模块的popen函数
import osdef execute_command(command):
try:
output = os.popen(command).read()
return 0, output
except OSError:
return -1, “Failed to execute command”# 以ls命令为例,执行ls命令并获取返回值
return_code, output = execute_command(“ls”)
print(“返回值:”, return_code)
print(“输出结果:”, output)# 3. 使用os模块的system函数
import osdef execute_command(command):
try:
return_code = os.system(command)
return return_code >> 8, None
except OSError:
return -1, “Failed to execute command”# 以ls命令为例,执行ls命令并获取返回值
return_code, output = execute_command(“ls”)
print(“返回值:”, return_code)
print(“输出结果:”, output)注意:以上方法中,返回值return_code表示命令执行的返回值,通常情况下,0表示成功,非零表示失败;output表示命令的输出结果。需要注意的是,os模块的popen函数在Python 3中已被废弃,推荐使用subprocess模块的run函数来执行命令。
2年前