使用commands模块可以方便地在Python中执行Linux shell命令。但需要注意的是,commands模块在Python 2.6之后已不再被支持,应该使用subprocess模块代替。
以下是使用commands模块执行Linux shell命令的攻略:
导入commands模块
import commands
获取命令的输出
调用commands.getoutput()方法可以获取shell命令的输出,返回的是一个字符串类型的结果
shell_cmd1 = 'ls -l'
result1 = commands.getoutput(shell_cmd1)
print(result1)
示例2
shell_cmd2 = 'cat /etc/passwd | grep -i root'
result2 = commands.getoutput(shell_cmd2)
print(result2)
获取命令的执行结果
调用commands.getstatusoutput()方法可以获取shell命令的执行结果,返回的是一个元组类型的结果
shell_cmd3 = 'ls --invalid-option'
(result3_status, result3_output) = commands.getstatusoutput(shell_cmd3)
if result3_status != 0:
print('Error: ', result3_output)
示例4
shell_cmd4 = 'echo "Hello World" > test.txt'
(result4_status, result4_output) = commands.getstatusoutput(shell_cmd4)
if result4_status != 0:
print('Error: ', result4_output)
else:
print('File created:', result4_output)
在上述示例中,第一个示例中,我们使用了ls -l命令获取当前目录下的文件列表,并将结果输出。第二个示例中,我们使用了cat和grep命令来查找/etc/passwd中包含关键词"root"的行。
第三个示例中,我们使用了一个无效的命令来模拟错误,如果命令执行失败,则打印出错误信息。最后一个示例中,我们使用echo命令将一个字符串写入到test.txt文件中,并检查命令执行的结果。
需要注意,为了避免命令注入等安全问题,在使用commands模块时,应该始终使用需要执行的命令的绝对路径,并将命令参数作为列表的形式进行传递。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python2.x利用commands模块执行Linux shell命令 - Python技术站