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()
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号