python 模块简介(自动化运维-7)

模块介绍

1. 模块分类

  • 自定义模块 (py 文件)
  • 内置模块(python 标准库)
  • 开源模块

2. 导入模块

如果想要使用模块,则需要导入。导入模块有一下几种方法:

import module
from module.xx.xx import xx
from module.xx.xx import xx as rename  
from module.xx.xx import *

 导入模块其实就是告诉Python解释器去解释那个py文件

  • 导入一个py文件,解释器解释该py文件
  • 导入一个包,解释器解释该包下的 __init__.py 文件

导入模块时的路径基准

import sys
print(sys.path)

 如果 sys.path 路径列表没有你想要的路径,可以通过 sys.path.append('路径') 添加。

import sys,os
def_path = os.path.abspath(".")
sys.path.append(def_path)

 3. 安装开源模块

常用安装方式 pip 安装,另外还有源码安装,安装方式自行查阅模块官方文档,安装成功后,模块会自动安装到 sys.path 中的某个目录中。

示例:安装 paramiko 模块和简单实用, 官方网站

1. 安装:

pip3 install paramiko

 2.模块使用

通过用户名和密码的方式连接linux服务器,并执行一条命令,返回结果。

import paramiko

#创建 ssh 对象
ssh = paramiko.SSHClient()
#允许连接不在 known_hosts 文件上的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#连接服务器
ssh.connect(hostname="47.90.17.134", port=22, username="root", password="Bsx123.com")
#执行命令,并赋值给三个对象
stdin, stdout, stderr = ssh.exec_command('ifconfig')
#读取标准输出和错误输出的结果
result = stdout.read()
error = stderr.read()
if result:
  print(result)
else:
  print(error)
#关闭连接
ssh.close()

 使用密钥的方式连接 ssh 服务器,并执行命令

import paramiko

#创建私钥对象,如果密钥有密码请传入两个参数,前一个是文件名,后一个是密钥的密码。
private_key = paramiko.RSAKey.from_private_key_file('openssh','1234.com')
#创建 ssh 对象
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#使用 key 方式连接服务器
ssh.connect(hostname="47.90.17.134", port=22, username="root", pkey=private_key)
stdin, stdout, stderr = ssh.exec_command('ifconfig')
result = stdout.read()
error = stderr.read()
if result:
  print(result)
else:
  print(error)
ssh.close()

 使用密码方式实现 SFTP 功能

import paramiko

#连接服务器,创建一个对象
transport = paramiko.Transport(("47.90.17.134", 22))
transport.connect(username="root", password="Bsx123.com")
#将实例化的 Transport 传入SFTPClient
sftp = paramiko.SFTPClient.from_transport(transport)
#上传文件
sftp.put('/test.txt','/test.txt')
#下载文件
sftp.get('/meili.txt','/haode.txt')
transport.close()

 使用密钥方式实现 SFTP 功能

import paramiko

#创建私钥对象,如果密钥有密码请传入两个参数,前一个是文件名,后一个是密钥的密码。
private_key = paramiko.RSAKey.from_private_key_file('openssh','1234.com')
#连接服务器创建一个对象
transport = paramiko.Transport(("47.90.17.134", 22))
transport.connect(username="root", pkey=private_key)
#将实例化的 Transport 传入SFTPClient
sftp = paramiko.SFTPClient.from_transport(transport)
#上传文件
sftp.put('/test.txt','/test.txt')
#下载文件
sftp.get('/meili.txt','/haode.txt')
transport.close()
posted @ 2018-03-14 11:32  步绍训  阅读(175)  评论(0)    收藏  举报