python脚本运行linux命令
-
要在Python脚本中运行Linux命令,可以通过subprocess模块实现。下面是一个示例代码:
“`python
import subprocess# 定义要执行的命令
command = “ls -l”# 使用subprocess模块运行命令
process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, error = process.communicate()# 输出命令执行的结果
if process.returncode == 0: # 命令执行成功
print(“命令执行结果:\n”, output.decode())
else: # 命令执行失败
print(“命令执行失败:\n”, error.decode())
“`在这个示例代码中,首先定义了要执行的命令,这里使用了`ls -l`命令来列出当前目录下的文件和文件夹的详细信息。然后使用subprocess模块的Popen函数来运行命令,其中设置`shell=True`表示使用系统的shell来执行命令。
通过subprocess.Popen函数返回的process对象可以获取命令的执行结果。使用process对象的`communicate()`方法可以获取命令的输出和错误信息。最后,根据命令的返回值(process.returncode)来判断命令是否执行成功,如果为0则表示成功,将输出结果打印出来;如果非0则表示失败,将错误信息打印出来。
通过这种方式,你可以在Python脚本中轻松地执行任意的Linux命令,并获取其输出结果。记得根据需要适当修改命令和处理输出结果的方式。
2年前 -
在Python中,可以通过使用`subprocess`模块来运行Linux命令。`subprocess`模块提供了一种在Python脚本中执行外部命令的方法。
下面是运行Linux命令的一些常见方法和技巧:
1. 使用`subprocess.run()`函数运行命令
`subprocess.run()`函数是Python 3.5及更高版本中内置的函数,它可以方便地运行命令,并返回执行结果。通过传递一个包含命令和参数的列表给`run()`函数,可以运行Linux命令。“`python
import subprocessresult = subprocess.run([‘command’, ‘arg1’, ‘arg2’], capture_output=True, text=True)
print(result.stdout)
“``capture_output=True`表示将命令的标准输出和标准错误捕获到结果对象中,`text=True`表示将输出以文本形式返回。
2. 使用`subprocess.Popen()`函数运行命令
`subprocess.Popen()`函数也可以用来运行Linux命令,它提供了更多的灵活性。可以通过调用`Popen()`函数来创建一个子进程,并使用`communicate()`方法来与子进程进行通信。“`python
import subprocessprocess = subprocess.Popen([‘command’, ‘arg1’, ‘arg2’], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
stdout, stderr = process.communicate()
print(stdout)
“`这里通过将`stdout`和`stderr`参数设置为`subprocess.PIPE`,可以在运行命令后获取其输出。
3. 使用`subprocess.check_output()`函数运行命令
`subprocess.check_output()`函数是在Python 2.7及更高版本中添加的函数,它与`subprocess.run()`函数类似,但是只返回命令的输出结果。“`python
import subprocessoutput = subprocess.check_output([‘command’, ‘arg1’, ‘arg2’], text=True)
print(output)
“`注意,`check_output()`函数只返回命令的输出结果,如果命令返回非零的退出代码,则会引发`subprocess.CalledProcessError`异常。
4. 捕获命令的退出代码
如果需要获取命令的退出代码,可以使用`returncode`属性。“`python
import subprocessprocess = subprocess.run([‘command’, ‘arg1’, ‘arg2’], capture_output=True, text=True)
print(“Exit code:”, process.returncode)
“``returncode`属性将包含命令的退出代码。
5. 运行具有特殊输出的命令
如果命令产生特殊的输出(如交互式命令),或者需要与命令进行交互,可以使用`subprocess`模块的其他函数和方法,如`subprocess.call()`和`subprocess.communicate()`。“`python
import subprocessprocess = subprocess.Popen([‘command’, ‘arg1’, ‘arg2′], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
stdout, stderr = process.communicate(input=’input’)
print(stdout)
“`在这个例子中,使用`stdin=subprocess.PIPE`将标准输入与子进程连接起来,可以向子进程发送输入。`communicate()`方法可以同时读取子进程的输出,并等待子进程终止。
这些是在Python中运行Linux命令的一些常用方法和技巧。使用这些方法,可以方便地在Python脚本中执行各种Linux命令。
2年前 -
在Python中,我们可以使用`subprocess`模块来执行Linux命令。`subprocess`模块提供了一个高级接口来启动新的进程,连接它们的输入/输出/错误管道,以及获取它们的返回码。
下面是一个使用Python脚本运行Linux命令的示例:
“`python
import subprocessdef run_command(command):
# 使用subprocess模块执行命令,并捕获输出和错误信息
process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, error = process.communicate()# 打印命令输出和错误信息
print(“Command Output:”)
print(output.decode(‘utf-8’))
print(“Command Error:”)
print(error.decode(‘utf-8’))# 运行ls命令
run_command(“ls”)# 运行pwd命令
run_command(“pwd”)
“`在上面的示例中,`run_command`函数使用`subprocess.Popen`方法来执行命令。`subprocess.PIPE`用于捕获命令的输出和错误信息。
`command`参数是要执行的Linux命令,它作为一个字符串传递给`subprocess.Popen`。
在函数内部,`subprocess.Popen`返回一个`Popen`对象,该对象可以用于与新创建的进程交互。我们使用`communicate`方法获取进程的输出和错误信息。
最后,通过调用`output.decode(‘utf-8’)`和`error.decode(‘utf-8’)`来将输出和错误信息从字节字符串解码为可读的字符串。
运行上述代码,您将看到输出和错误信息以类似于在命令行中运行命令时的方式打印出来。
注意:在运行命令时,需要谨慎处理用户输入,以避免潜在的安全漏洞,比如通过用户输入来构造恶意命令。在使用`subprocess.Popen`时,使用安全的方式来拼接命令字符串是非常重要的。
2年前