用Python3执行Linux命令

fiy 其他 33

回复

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

    要用Python3执行Linux命令,可以使用`subprocess`模块。`subprocess`模块允许我们在Python脚本中执行其他程序和命令,并且可以获取其输出。

    下面是一个示例,展示如何使用Python3执行Linux命令并获取输出:

    “`python
    import subprocess

    # 执行命令
    command = “ls”
    result = subprocess.run(command, shell=True, capture_output=True, text=True)

    # 检查命令执行是否成功
    if result.returncode == 0:
    # 获取命令输出
    output = result.stdout
    print(output)
    else:
    # 获取错误信息
    error = result.stderr
    print(f”Command failed with error: {error}”)
    “`

    在上面的示例中,我们使用`subprocess.run()`方法来执行一个命令。我们将要执行的命令作为字符串传递给`run()`方法,并将`shell`参数设置为`True`来表示我们希望将命令传递给系统的shell执行。

    `capture_output`参数设置为`True`表示我们希望捕获命令的输出。`text`参数设置为`True`表示我们希望以文本形式获取输出。

    `subprocess.run()`方法返回一个`CompletedProcess`对象,该对象包含命令的执行结果。我们可以使用`returncode`属性来检查命令是否执行成功,如果返回值为0,则表示命令执行成功。如果命令执行失败,我们可以使用`stderr`属性获取错误信息。

    在上面的示例中,我们执行了一个`ls`命令,并将输出打印到控制台。你可以根据自己的需求修改要执行的命令和处理命令输出的方式。

    请注意,使用`subprocess`模块执行命令需要谨慎,特别是当执行来自用户输入的命令时。你应该确保命令是可信的,并避免使用不安全的命令或参数。

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

    在Python3中,可以使用`os`模块来执行Linux命令。`os`模块提供了许多与操作系统交互的函数。下面是使用Python3执行Linux命令的几种方法。

    1. 使用`os.system()`函数执行命令:
    “`python
    import os

    # 执行命令
    os.system(“ls -l”)
    “`
    上述代码将执行`ls -l`命令,打印出当前目录下的文件列表。

    2. 使用`subprocess`模块来执行命令,并获取命令执行的输出:
    “`python
    import subprocess

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

    # 打印输出结果
    print(result.stdout)
    “`
    上述代码使用`subprocess.run()`函数执行命令,并通过参数`capture_output=True`捕获命令输出,将其保存在`result.stdout`中。然后,可以通过打印`result.stdout`来查看输出结果。

    3. 使用`subprocess`模块来执行命令,并获取命令的返回值:
    “`python
    import subprocess

    # 执行命令并获取返回值
    result = subprocess.run([“ls”, “-l”])

    # 打印返回值
    print(result.returncode)
    “`
    上述代码使用`subprocess.run()`函数执行命令,并将返回值保存在`result.returncode`中。通过打印`result.returncode`来查看返回值,返回值为0表示命令执行成功,非0表示命令执行失败。

    4. 使用`subprocess`模块来执行多个命令:
    “`python
    import subprocess

    # 执行多个命令
    result = subprocess.run([“ls”, “-l”], stdout=subprocess.PIPE)
    print(result.stdout)

    result = subprocess.run([“pwd”], stdout=subprocess.PIPE)
    print(result.stdout)
    “`
    上述代码使用`subprocess.run()`函数分别执行了`ls -l`和`pwd`命令,并通过`stdout=subprocess.PIPE`参数捕获命令的输出。通过打印`result.stdout`来查看输出结果。

    5. 使用`shlex`模块来解析命令行字符串,并执行命令:
    “`python
    import shlex
    import subprocess

    # 解析命令行字符串
    command = shlex.split(“ls -l”)

    # 执行命令
    result = subprocess.run(command, capture_output=True, text=True)

    # 打印输出结果
    print(result.stdout)
    “`
    上述代码使用`shlex.split()`函数解析命令行字符串,并将其转换为列表形式的命令。然后,使用`subprocess.run()`函数执行命令,并通过参数`capture_output=True`捕获命令输出,将其保存在`result.stdout`中。最后,通过打印`result.stdout`来查看输出结果。

    这些是使用Python3执行Linux命令的几种方法,可以根据具体需求选择适合的方法。

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

    要在Python 3中执行Linux命令,可以使用subprocess模块。subprocess模块允许您创建新的进程,连接到它们的输入/输出/错误管道,并获取它们的返回码。

    下面是一个执行Linux命令的示例程序:

    “`python
    import subprocess

    # 执行命令,并等待返回
    def run_command(command):
    try:
    # 运行命令,并将结果输出捕捉到变量中
    output = subprocess.check_output(command, stderr=subprocess.STDOUT, shell=True)
    # 转换为字符串并输出
    result = output.decode(‘utf-8’)
    print(result)
    except subprocess.CalledProcessError as e:
    # 打印错误信息
    print(“Command ‘{}’ returned non-zero exit status {}. Error: {}”.format(e.cmd, e.returncode, e.output))

    # 示例1:执行基本的Linux命令
    run_command(‘ls’)
    run_command(‘pwd’)
    run_command(‘date’)

    # 示例2:执行带有参数的Linux命令
    run_command(‘ls -l’)
    run_command(‘grep “keyword” file.txt’)

    # 示例3:执行多个命令
    run_command(‘ls; pwd; date’)

    # 示例4:执行管道命令
    run_command(‘ls | grep “keyword”‘)

    # 示例5:执行重定向
    run_command(‘ls > files.txt’)
    run_command(‘cat files.txt’)

    “`

    在上面的示例中,我们定义了一个名为run_command的函数,用于执行Linux命令。函数调用subprocess.check_output()来运行命令,并捕获输出。如果命令返回非零退出状态,则会抛出subprocess.CalledProcessError异常。

    请根据您的需求,在run_command函数中添加或修改命令,并通过调用run_command函数来执行它们。

    注意:当执行Linux命令时,请谨慎处理用户输入,以避免命令注入攻击。在拼接命令字符串之前,始终进行输入验证和转义。

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

400-800-1024

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

分享本页
返回顶部