python调用linux命令例子

worktile 其他 7

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Python中调用Linux命令可以使用subprocess模块。下面是一个示例:

    “`python
    import subprocess

    # 执行ls命令,并获取输出结果
    result = subprocess.run([‘ls’, ‘-l’], capture_output=True, text=True)

    # 打印输出结果
    print(result.stdout)
    “`

    上述代码中,使用subprocess.run()函数来执行`ls -l`命令,并将输出结果捕获。我们设置`capture_output=True`来捕获命令执行的标准输出,并将其以文本格式返回给result对象。

    另外,我们还可以通过subprocess模块执行Linux命令并获取命令执行状态码。示例如下:

    “`python
    import subprocess

    # 执行mkdir命令创建一个新的目录
    result = subprocess.run([‘mkdir’, ‘new_directory’])

    # 打印命令执行的状态码
    print(result.returncode)
    “`

    上述代码中,通过subprocess.run()函数执行`mkdir new_directory`命令来创建一个新的目录。执行完毕后,我们可以通过result.returncode属性获取命令执行的状态码,如果返回值为0表示命令执行成功。

    除了上述示例外,subprocess模块还提供了其他函数和方法来执行和控制Linux命令的执行,例如subprocess.call()、subprocess.check_output()等。根据具体的需求,可以选择合适的函数来调用Linux命令。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    使用Python调用Linux命令可以通过subprocess模块来实现。下面是一些使用Python调用Linux命令的示例:

    1. 执行简单的命令

    “`python
    import subprocess

    # 调用ls命令查看当前目录下的文件和文件夹
    subprocess.call([‘ls’])
    “`

    2. 获取命令执行的输出

    “`python
    import subprocess

    # 调用pwd命令获取当前工作目录
    output = subprocess.check_output([‘pwd’])

    # 输出结果
    print(output)
    “`

    3. 使用管道连接多个命令

    “`python
    import subprocess

    # 使用管道连接ls和grep命令,查找当前目录下以.txt结尾的文件
    p1 = subprocess.Popen([‘ls’], stdout=subprocess.PIPE)
    p2 = subprocess.Popen([‘grep’, ‘.txt’], stdin=p1.stdout, stdout=subprocess.PIPE)
    p1.stdout.close()

    # 获取输出结果
    output = p2.communicate()[0]

    # 输出结果
    print(output)
    “`

    4. 执行后台命令

    “`python
    import subprocess

    # 执行后台命令,使用nohup和&符号
    subprocess.Popen([‘nohup’, ‘command’, ‘&’])
    “`

    5. 传递参数给命令

    “`python
    import subprocess

    # 使用grep命令搜索文件中的关键词
    subprocess.call([‘grep’, ‘keyword’, ‘file.txt’])
    “`

    通过使用subprocess模块,Python可以方便地调用Linux命令,执行命令并获取命令的输出。同时,可以利用管道连接多个命令,执行后台命令,以及传递参数给命令。这些示例演示了如何在Python中直接调用Linux命令以及如何处理命令的输出和参数。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    使用Python调用Linux命令可以通过`subprocess`模块实现。`subprocess`模块是Python标准库中的一个模块,它允许你创建新的进程,并与它们进行交互。

    下面是一个使用Python调用Linux命令的示例:

    “`python
    import subprocess

    # 执行Linux命令并获取输出
    output = subprocess.check_output([‘ls’, ‘-l’])

    # 打印输出结果
    print(output.decode())
    “`

    这个例子中,我们使用`subprocess.check_output`函数来执行`ls -l`命令,并将输出结果保存在`output`变量中。然后使用`decode()`方法将输出结果从字节字符串转换为普通字符串,并通过`print`函数打印出来。

    这只是一个简单的示例,下面我们将深入介绍`subprocess`模块的更多用法。

    ## 执行命令并获取输出

    要执行命令并获取输出,可以使用`subprocess.check_output`函数。这个函数会执行给定的命令,并返回命令的输出结果。下面是一个示例:

    “`python
    import subprocess

    # 执行命令并获取输出
    output = subprocess.check_output([‘ls’, ‘-l’])

    # 打印输出结果
    print(output.decode())
    “`

    在这个例子中,我们执行了`ls -l`命令,并将其输出结果保存在`output`变量中。然后使用`decode()`方法将输出结果从字节字符串转换为普通字符串,并通过`print`函数打印出来。

    ## 执行命令并获取返回值

    除了获取命令的输出结果,有时候还需要获取命令的返回值。可以使用`subprocess.run`函数来执行命令并获取返回值。下面是一个示例:

    “`python
    import subprocess

    # 执行命令并获取返回值
    result = subprocess.run([‘git’, ‘status’])

    # 打印返回值
    print(result.returncode)
    “`

    在这个例子中,我们执行了`git status`命令,并将其返回值保存在`result`变量中。然后通过访问`returncode`属性获取返回值,并通过`print`函数打印出来。

    ## 执行命令并忽略输出

    有时候,我们只是需要执行一个命令,而不关心其输出结果。可以使用`subprocess.run`函数来执行命令,并使用`subprocess.DEVNULL`作为`stdout`和`stderr`参数的值,忽略输出结果。下面是一个示例:

    “`python
    import subprocess

    # 执行命令并忽略输出
    subprocess.run([‘git’, ‘commit’, ‘-m’, ‘Initial commit’], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
    “`

    在这个例子中,我们执行了`git commit -m “Initial commit”`命令,并使用`subprocess.DEVNULL`作为`stdout`和`stderr`参数的值,忽略输出结果。

    ## 在Shell中执行命令

    默认情况下,`subprocess`模块在一个新的子进程中执行命令。如果要在一个新的的Shell中执行命令,则可以将`shell`参数设置为`True`。下面是一个示例:

    “`python
    import subprocess

    # 在Shell中执行命令
    subprocess.run(‘ls -l’, shell=True)
    “`

    在这个例子中,我们执行了`ls -l`命令,并将`shell`参数设置为`True`。

    需要注意的是,当使用`shell=True`时,命令中的特殊字符(如管道符号、重定向符号等)会被解析和执行。

    ## 传递参数给命令

    有时候,我们需要将参数传递给命令。可以简单地将参数作为命令的一部分传递给`subprocess.run`函数。下面是一个示例:

    “`python
    import subprocess

    # 传递参数给命令
    subprocess.run([‘mkdir’, ‘new_directory’])
    “`

    在这个例子中,我们执行了`mkdir new_directory`命令,并将`new_directory`作为参数传递给`mkdir`命令。

    ## 捕获命令的输出结果

    有时候,我们需要捕获命令的输出结果,并进行进一步的处理。可以使用`subprocess.Popen`函数来执行命令,并通过`communicate`方法来获取命令的输出结果。下面是一个示例:

    “`python
    import subprocess

    # 捕获命令的输出结果
    process = subprocess.Popen([‘ls’, ‘-l’], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    output, error = process.communicate()

    # 打印输出结果和错误信息
    print(output.decode())
    print(error.decode())
    “`

    在这个例子中,我们执行了`ls -l`命令,并使用`subprocess.PIPE`作为`stdout`和`stderr`参数的值,将命令的输出结果捕获。然后通过`communicate`方法获取输出结果和错误信息,并使用`decode()`方法将它们从字节字符串转换为普通字符串,并通过`print`函数打印出来。

    ## 总结

    通过`subprocess`模块,我们可以方便地使用Python调用Linux命令。通过`subprocess.check_output`函数,我们可以执行命令并获取输出结果;通过`subprocess.run`函数,我们可以执行命令并获取返回值或忽略输出结果;通过`subprocess.Popen`函数,我们可以捕获命令的输出结果进行进一步的处理。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部