欢迎访问宙启技术站
智能推送

Python中如何使用commands模块执行Linux命令

发布时间:2024-01-16 17:52:51

在Python中,可以使用commands模块来执行Linux命令。但是,需要注意的是,commands模块在Python 2.6+中已经被废弃,推荐使用subprocess模块来替代。subprocess模块提供了更多的功能和灵活性。

下面是一个使用commands模块执行Linux命令的示例:

import commands

def execute_command(command):
    # 使用commands.getstatusoutput()来执行命令,并返回命令的执行状态和输出结果
    status, output = commands.getstatusoutput(command)
    
    if status == 0:
        print("命令执行成功")
    else:
        print("命令执行失败")
    
    print("输出结果:")
    print(output)

# 执行一个简单的命令
execute_command("ls")

# 执行一个带参数的命令
execute_command("ls -l /path/to/directory")

上述代码中的execute_command()函数使用commands.getstatusoutput()来执行给定的Linux命令,并打印结果。commands.getstatusoutput()返回一个元组,其中 个元素是命令的执行状态(0表示成功,非零表示失败),第二个元素是命令的输出结果。

虽然commands模块在Python 2.6+中已经被废弃,但还是可以在较旧的Python版本中使用。然而,为了更好地使用Linux命令,推荐使用subprocess模块。下面是一个使用subprocess模块执行Linux命令的示例:

import subprocess

def execute_command(command):
    # 使用subprocess.run()来执行命令,并返回命令的结果
    result = subprocess.run(command, shell=True, capture_output=True, text=True)
    
    if result.returncode == 0:
        print("命令执行成功")
    else:
        print("命令执行失败")
    
    print("输出结果:")
    print(result.stdout)

# 执行一个简单的命令
execute_command("ls")

# 执行一个带参数的命令
execute_command("ls -l /path/to/directory")

上述代码中的execute_command()函数使用subprocess.run()来执行给定的Linux命令,并打印结果。subprocess.run()返回一个CompletedProcess对象,其中returncode属性表示命令的执行状态(0表示成功,非零表示失败),stdout属性表示命令的输出结果。

subprocess.run()中,shell=True表示使用shell执行命令,capture_output=True表示获取命令的输出结果,text=True表示以文本形式获取输出结果。

总结而言,建议使用subprocess模块来执行Linux命令,因为它提供了更多的功能和灵活性。