9870780 发表于 2016-4-11 10:31:03

python中常用到的模块和包名称

1 paramiko(基于openssh,python封装的ssh)
模块python自带

用法:

1
2
3
4
5
6
7
8
9
10
11
12
13
import paramiko                                          
ssh = paramiko.SSHClient()                              
ssh.load_system_host_keys()                              
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='192.168.100.20',port=58422,username='oldboy')
stdin, stdout,stderr=ssh.exec_command('uptime')   
               
type(stdout)
paramiko.ChannelFile
print stderr.readlines()
[]
print stdout.readlines()
[' 21:35:05 up 1 day, 55 min,2 users,load average: 0.00, 0.00, 0.00\n']





相当于shell当中的

1
ssh -p58422 oldboy@192.168.100.20 -o StrictHostKeyChecking=no 'uptime'






2 subprocess(尽量不要用这个模块,返回不美观,如果只是执行shell命令推荐commands模块)
python自带模块

常用fork子进程执行shell命令,可以返回结果和返回值
举例:
只需要返回值

1
2
3
4
5
6
7
In : retcode = subprocess.call('ls -l', shell=True)
total 12
-rw-rw-r--. 1 oldboy oldboy 239 Jan 19 21:13 access.log
-rw-rw-r--. 1 oldboy oldboy 458 Jan 19 20:50 arp.txt
-rw-r--r--. 1 oldboy oldboy 184 Jan 16 12:04 hosts
In : print retcode
0





注意:
shell默认为False,等于 retcode = subprocess.call(["ls", "-l"])列表的形式第一个为命令,后面的都作为参数传递

需要返回值

1
2
child1 = subprocess.Popen(["cat","/etc/passwd"], stdout=subprocess.PIPE)
child1.stdout.readlines()






3 comands模块
python自带模块

1
status,output = commands.getstatusoutput('cat /etc/passwd')




优点: 无论命令执行错误与正确,正确输出和错误输出都以字符串原样的字符串形式传递给output

页: [1]
查看完整版本: python中常用到的模块和包名称