python学习之路-模块
2017-08-12 17:40
555 查看
大纲:
1.模块的基础知识
2.标准库模块
2.1 os
2.2 sys
2.3 random
2.4 time和datetime
2.5 shutil
2.6 shelve
2.7 configparser
2.8 hashlib
2.9 re
2.10 xml
2.11 yaml
2.12 pickle&json
2.13 paramiko
一.模块基础知识
模块:本质–.py结尾的python文件。用来从逻辑上组织python代码(变量,函数,类:实现一个功能)
模块的导入方法:
impor本质把python文件解释一遍
包的本质:就是一个目录(必须带有一个init.py文件)
导入包的本质:执行该包下的init.py文件
模块分类:标准库模块,开源模块,自定义模块
二.标准库模块
1.os模块–普通的操作系统功能
动态获取绝对路径
2.sys模块
3.random模块
生成随机验证码
4.time和datetime模块
在python中通常有3中形式来表示时间
1)格式化字符串
2)时间戳 时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移
3)元祖(struct_time)struct_time元组共有9个元素
UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间。在中国为UTC+8。DST(Daylight Saving Time)即夏令时。
5.shutil模块–高级的 文件、文件夹、压缩包 处理模块
6.shelve模块–数据存储
存储的东西可以当作字典,存储完毕可以close,它只有一个函数open,参数是文件名
shelve.open(filename, flag=’c’, protocol=None, writeback=False)
7.configparser模块–生成和修改配置文件
8.hashlib模块–用于加密相关的操作
主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法
举例md5加密其余用法相同
9.re模块
正则表达式列表
10.xml模块
可扩展标记语言(eXtensible Markup Language),在后面的前端会详细讲解
11.yaml模块
后期补充。。。
12.pickle&json模块–序列化和反序列化
详见day04
13.paramiko模块–用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作。
这里插播一个怎样在win环境下安装paramiko
首先在安装paramiko模块之前必须先安装easy_install 和pip(easy_install和pip都是用来下载安装Python一个公共资源库PyPI
的相关资源包的,pip是easy_install的改进版,提供更好的提示信 息,删除package等功能。老版本的python中只有easy_install, 没有pip。)
1)下载easy_install地址
https://pypi.python.org/pypi/ez_setup
在cmd下找到easy_install的安装目录
在这个目录下执行python ez_setup.py这个命令,安装完成后在python的根目录下会多出一个script的文件夹,把C:\Python30\Scripts这个添加到环境变量Path中(添加环境变量的步骤:此电脑->属性->高级->环境变量->系统变量->新建)
2)下载pip
下载地址:
https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb
进入到pip的setup.py所在的目录
执行命令:python setup.py install 进行安装
3)下载
下载地址:
http://files.cnblogs.com/files/wupeiqi/paramiko-1.10.1.tar.gz
和上面方式一样,进入paramiko的setup.py所在的目录,执行以下两条命令即可安装成功
python setup.py build
python setup.py install
4)进入pycharm进行验证,import paramiko能导入就是成功啦
通过用户名和密码连接服务器
通过密钥连接服务器(公钥和密钥会后续补充)
1.模块的基础知识
2.标准库模块
2.1 os
2.2 sys
2.3 random
2.4 time和datetime
2.5 shutil
2.6 shelve
2.7 configparser
2.8 hashlib
2.9 re
2.10 xml
2.11 yaml
2.12 pickle&json
2.13 paramiko
一.模块基础知识
模块:本质–.py结尾的python文件。用来从逻辑上组织python代码(变量,函数,类:实现一个功能)
模块的导入方法:
1.import moduels(模块名字) 2.import moduels (模块名字) as X #给导入的模块起别名,可以通过别名调用 3.from modules(模块名字) import func(方法) #从什么模块导入什么方法 4.from package.modules import func(方法) #从一个包的什么模块导入什么方法
impor本质把python文件解释一遍
包的本质:就是一个目录(必须带有一个init.py文件)
导入包的本质:执行该包下的init.py文件
模块分类:标准库模块,开源模块,自定义模块
二.标准库模块
1.os模块–普通的操作系统功能
import os#模块导入 1.os.open()#打开文件 f=open("litter pricen","r",encoding="utf-8") 2.os.read()#读取文件内容,一次性读完 f.read() 3.os.close()#关闭文件 f.close() 4.os.popen()#从一个命令打开一个管道 #os.popen(command[, mode[, bufsize]]) command -- 使用的命令。mode -- 模式权限可以是 'r'(默认) 或 'w'。 #bufsize -- 指明了文件需要的缓冲大小:0意味着无缓冲;1意味着行缓冲;其它正值表示使用参数大小的缓冲 # (大概值,以字节为单位)。负的bufsize意味着使用系统的默认值,一般来说,对于tty设备,它是行缓冲; # 对于其它文件,它是全缓冲。如果没有改参数,使用系统的默认值。 #返回值:返回一个文件描述符号为fd的打开的文件对象 os.popen("mkdir nwdir","r",1) 5.os.remove(path)#删除一个文件 6.os.remove("test.txt") 7.os.getcwd()#获取当前工作目录,即当前python脚本工作的目录路径 print(os.getcwd()) 8.os.chdir()#把当前脚本切换到另一个目录下 9.os.chdir("D:\\tmp" )#win下 10.os.curdir()#返回当前目录 11.os.pardir()#获取当前目录的父目录字符串名,在window中这个代表着上级目录 12.os.makedirs(path,mode)#递归的创建目录 path -- 需要递归创建的目录 mode -- 权限模式。 13.os.removedirs(path)#递归删除目录,若目录为空,则删除,并递归到上一级目录,如若也为空,则删除 14.os.mkdir(path,mode)#创建单级目录 15.os.rmdir(path)#删除单级空目录,若目录不为空则无法删除 16.os.listdir(path)#l列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印 17.os.rename("sname","dname")#重命名目录或者文件名称 18.os.stat()#print(os.stat("G:\\")) os.sep#输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/" 19.os.linesep#输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n" 20.os.pathsep#输出用于分割文件路径的字符串 21.os.name#输出字符串指示当前使用平台。win->'nt'; Linux->'posix' 22.os.system(command)#运行shell命令,直接显示 23.os.environ#获取系统环境变量 24.os.path.abspath(path)#返回path规范化的绝对路径 25.os.path.dirname(path)#返回path的目录。其实就是os.path.split(path)的第一个元素 26.os.path.exists(path)#如果path存在,返回True;如果path不存在,返回False 27.os.path.isabs(path)#如果path是绝对路径,返回True 28.os.path.isfile(path)#如果path是一个存在的文件,返回True。否则返回False 29.os.path.isdir()#如果path是一个存在的目录,则返回True。否则返回False 30.os.path.join(path1,path2...)#将多个路径组合后返回 31.os.path.getatime(path)#返回path所指向的文件或者目录的最后存取时间 32.os.path.getmtime(path)#返回path所指向的文件或者目录的最后修改时间
动态获取绝对路径
import os #动态获取绝对路径 print(os.path.abspath(__file__)) print(os.path.dirname(os.path.abspath(__file__)))#只保留目录去掉文件的文件名 dir=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
2.sys模块
import sys 1.sys.argv #命令行参数List,第一个元素是程序本身路径 print(sys.argv[0])#第一个元素是程序本身路径 2.sys.exit()#退出程序(一般用于程序中途退出程序)。(0是正常退出,其他为异常) 3.sys.version#获取Python解释程序的版本信息 4.sys.path#返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.stdin\stdout\stderr#stdin , stdout , 以及stderr 变量包含与标准I/O 流对应的流对象. # 如果需要更好地控制输出,而print 不能满足你的要求, 它们就是你所需要的. # 你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), # 或者以非标准的方式处理它们 5.sys.path.append(path)#添加环境变量
3.random模块
import random print(random.random())#返回随机生成的一个实数,它在[0,1)范围内。 print(random.randint(1,3))#生成随机整数1,2,3 print(random.randrange(1,15))#random.randrange ([start,] stop [,step]) # 返回指定递增基数集合中的一个随机数,基数缺省值为1
生成随机验证码
import random #生成六位随机验证码 code=[] for i in range(6): if i==random.randint(1,5):#random.choice也可以 code.append(str(random.randint(1,5))) else: temp=random.randint(65,90)#生成随机大写字母 code.append(chr(temp)) print(''.join(code)) #生成四位随机验证码 checkcode='' for i in range(4): current=random.randrange(0,4) if current==i: tmp=chr(random.randrange(65,90)) else: tmp=random.randrange(0,9) checkcode=checkcode+str(tmp) print(checkcode)
4.time和datetime模块
在python中通常有3中形式来表示时间
1)格式化字符串
2)时间戳 时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移
3)元祖(struct_time)struct_time元组共有9个元素
UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间。在中国为UTC+8。DST(Daylight Saving Time)即夏令时。
import time time.localtime([secs])#将一个时间戳转换为当前时区的struct_time time.gmtime([secs])#将一个时间戳转换为UTC时区(0时区)的struct_time time.time()#返回当前时间的时间戳 time.mktime(t)#将一个struct_time转化为时间戳 time.sleep(secs)#线程推迟指定的时间运行。单位为秒 time.clock()#这在不同的系统上含义不同。 # 在UNIX系统上,它返回的是“进程时间”,它是用秒表示的浮点数(时间戳)。 # 而在WINDOWS中,第一次调用,返回的是进程运行的实际时间。 # 而第二次之后的调用是自第一次调用以后到现在的运行时间。 time.asctime([t])#把一个表示时间的元组或者struct_time表示为这种形式:'Sun Jun 20 23:21:05 1993'。 # 如果没有参数,将会将time.localtime()作为参数传入 time.ctime([secs])#把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式 #如果参数未给或者为None的时候,将会默认time.time()为参数 time.strftime(format[, t])#把一个代表时间的元组或者struct_time # (如由time.localtime()和time.gmtime()返回)转化为格式化的时间字符串 time.strftime("%Y-%m-%d %X", time.localtime()) time.strptime(string[, format])#把一个格式化时间字符串转化为struct_time time.strptime('2011-05-05 16:37:06', '%Y-%m-%d %X')
import datetime print(datetime.datetime.now())#获取当前时间 print(datetime.datetime.now()+datetime.timedelta(3))#当前时间退后3天 print(datetime.datetime.now()+datetime.timedelta(-3))#当前时间提前3天
5.shutil模块–高级的 文件、文件夹、压缩包 处理模块
import shutil shutil.copyfileobj(fsrc, fdst[, length])#将源文件fsrc内容拷贝到另一个文件fdst中,文件长度是length(可以只考贝一部分) shutil.copyfile(src, dst)#拷贝文件 shutil.copymode(src, dst)#仅拷贝权限。内容、组、用户均不变 shutil.copystat(src, dst)#拷贝状态的信息 shutil.copy(src, dst)#拷贝文件和权限 shutil.copy2(src, dst)#拷贝文件和状态信息 shutil.copytree(src, dst, symlinks=False, ignore=None)#递归的去拷贝文件 shutil.rmtree(path[, ignore_errors[, onerror]])#递归的去删除文件 shutil.move(src, dst)#递归的去移动文件 shutil.make_archive(base_name, format,...) #创建压缩包并返回文件路径,例如:zip、tar #base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径, #format: 压缩包种类,“zip”, “tar”, “bztar”,“gztar” #root_dir: 要压缩的文件夹路径(默认当前目录) #owner: 用户,默认当前用户 #group: 组,默认当前组 #logger: 用于记录日志,通常是logging.Logger对象
6.shelve模块–数据存储
存储的东西可以当作字典,存储完毕可以close,它只有一个函数open,参数是文件名
shelve.open(filename, flag=’c’, protocol=None, writeback=False)
7.configparser模块–生成和修改配置文件
import configparser #配置文件是.cfg结尾的文件 #以下是ConfigParser的基础语法 configparser.ConfigParser.read()#直接读取ini(initial)文件内容(.ini初始化文件,该文件主要存放用户所做的选择以及系统的各种参数) configparser.ConfigParser.sections()#得到所有的section,并以列表的形式返回 configparser.ConfigParser.options(section)#得到该section的所有option configparser.ConfigParser.items(session)#得到该section的所有键值对 configparser.ConfigParser.get(section,option)#得到section中option的值,返回为str类型 configparser.ConfigParser.getint(section,option)#得到section中option的值,返回为int类型 configparser.ConfigParser.set( section, option, value)#对section中的option进行设置,需要调用write将内容写入配置文件 configparser.ConfigParser.add_section(section)#增加新的session
8.hashlib模块–用于加密相关的操作
主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法
举例md5加密其余用法相同
import hashlib md=hashlib.md5() md.update(b"hello") print(md.digest())#2进制格式hash b']A@*\xbcK*v\xb9q\x9d\x91\x10\x17\xc5\x92' print(md.hexdigest()) #16进制格式hash 5d41402abc4b2a76b9719d911017c592 print(len(md.hexdigest())) #32
9.re模块
import re #1.re.match的函数原型为:re.match(pattern, string, flags) #作用:从字符串的开头开始匹配 test="hello world,study well and make progress evey day!" m=re.match(r"(\w+)\s", test)#r表示转义,相当于\ print(m)#<_sre.SRE_Match object at 0x00000000028AEB70> #匹配成功则返回Match,匹配不成功返回none #pattern:正则表达式 #string:需要匹配的内容 #flags:匹配标志位,如:是否区分大小写,多行匹配等等 #2.re.search的函数原型为: re.search(pattern, string, flags) #作用:在字符串中进行查找进行模糊匹配 h=re.search(r"study\s",test) print(h)#<_sre.SRE_Match object at 0x0000000002B681D0> #参数和返回值同match #3.re.sub的函数原型为:re.sub(pattern, repl, string, count) #作用:替换字符串中的匹配项 i=re.sub(r"\s",".",test) print(i)#hello.world,study.well.and.make.progress.evey.day! #count:替换个数,默认每个都替换 #4.re.split(pattern, string, maxsplit=0) #作用:将字符串按照正则表达式进行划分,返回一个列表 j=re.split(r"\s",test) print(j)#['hello', 'world,study', 'well', 'and', 'make', 'progress', 'evey', 'day!'] #5.re.findall(pattern, string, flags=0) #作用:获取字符串中所有匹配的字符串,返回列表 k=re.findall(r"w\w+",test) print(k)#['world', 'well'] #6.re.compile(pattern, flags=0) #作用:把正则表达式编译成一个正则表达式对象 l=re.compile("[a-z]") n=l.findall("HEshjkhsdkj") print(n)#['s', 'h', 'j', 'k', 'h', 's', 'd', 'k', 'j']
正则表达式列表
10.xml模块
可扩展标记语言(eXtensible Markup Language),在后面的前端会详细讲解
11.yaml模块
后期补充。。。
12.pickle&json模块–序列化和反序列化
详见day04
13.paramiko模块–用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作。
这里插播一个怎样在win环境下安装paramiko
首先在安装paramiko模块之前必须先安装easy_install 和pip(easy_install和pip都是用来下载安装Python一个公共资源库PyPI
的相关资源包的,pip是easy_install的改进版,提供更好的提示信 息,删除package等功能。老版本的python中只有easy_install, 没有pip。)
1)下载easy_install地址
https://pypi.python.org/pypi/ez_setup
在cmd下找到easy_install的安装目录
在这个目录下执行python ez_setup.py这个命令,安装完成后在python的根目录下会多出一个script的文件夹,把C:\Python30\Scripts这个添加到环境变量Path中(添加环境变量的步骤:此电脑->属性->高级->环境变量->系统变量->新建)
2)下载pip
下载地址:
https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb
进入到pip的setup.py所在的目录
执行命令:python setup.py install 进行安装
3)下载
下载地址:
http://files.cnblogs.com/files/wupeiqi/paramiko-1.10.1.tar.gz
和上面方式一样,进入paramiko的setup.py所在的目录,执行以下两条命令即可安装成功
python setup.py build
python setup.py install
4)进入pycharm进行验证,import paramiko能导入就是成功啦
通过用户名和密码连接服务器
import paramiko ssh=paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(ip地址, 端口号, 用户名, 密码) stdin, stdout, stderr = ssh.exec_command('df') print stdout.read() ssh.close(); #上传和下载文件 import os,sys import paramiko t = paramiko.Transport((IP,端口号)) t.connect(username=用户名,password=密码) sftp = paramiko.SFTPClient.from_transport(t) sftp.put('/tmp/test.py','/tmp/test.py') t.close() import os,sys import paramiko t = paramiko.Transport((IP,端口号)) t.connect(username=username=用户名,password=密码) sftp = paramiko.SFTPClient.from_transport(t) sftp.get('/tmp/test.py','/tmp/test2.py') t.close()
通过密钥连接服务器(公钥和密钥会后续补充)
import paramiko private_key_path = '/home/auto/.ssh/id_rsa' key = paramiko.RSAKey.from_private_key_file(private_key_path) ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect('主机名 ', 端口, '用户名', key) stdin, stdout, stderr = ssh.exec_command('df') print stdout.read() ssh.close()
相关文章推荐
- python学习之路-第八天-文件IO、储存器模块
- Python3内置模块详解1 (Python 之路 Day5 - 常用模块学习 )
- Python学习之路---Python模块
- python学习之路-7 模块configparser/xml/shutil/subprocess以及面向对象初级入门
- Python 之路 Day5 - 常用模块学习
- python之路-16-常用模块学习
- python学习之路——基础篇(3)模块(续)
- python学习之路(json & pickle 模块 ---序列化,反序列化)
- python学习之路(shelve 模块 ---序列化,反序列化)
- python学习之路------time 模块
- 我的python学习之路--如何写python模块
- python学习之路(常用系统模块4--shutil模块)
- 我的python学习之路---命行选项模块optparse
- 我的python学习之路----包、模块
- Python 之路 Day5 - 常用模块学习
- python学习之路-第四天-模块
- Python学习之路:一些BIF+魔法方法+模块
- Python学习之路---模块笔记
- python学习之路(常用系统模块1--时间模块)
- Python 之路 Day5 - 常用模块学习