本节大纲:

  1. 模块介绍
  2. time &datetime模块
  3. random
  4. os
  5. sys
  6. shutil
  7. json & picle
  8. shelve
  9. xml处理
  10. yaml处理
  11. configparser
  12. hashlib
  13. subprocess
  14. logging模块
  15. re正则表达式
 
 
程序解耦:程序其他地方拆分开,降低了数据逻辑层和后台数据交互接口的关联
 
import sys,os
 
os.path.diirname(os.path.abspath(__file__)) 打印上级目录地址
 
模块:
1、定义
模块:本质是一个.py结尾的python文件(ps:文件名:test ,模块调用名:test),用来从逻辑上组织python代码(变量、函数、类、逻辑:本质就是为了实现一个功能)
 
包:本质是一个目录(必须有一个_init_.py文件),是从逻辑上组织模块
包的导入:本质都是解释__init__.py文件
 
 
2、导入方法
1。导入 import module_name1,module_name2
2。from module_name1 import * -->本质上是把module_name1的代码复制到*的当前文件的位置,文件从上到下解释执行,若文件中有相同方法会将module_name1中的方法覆盖,不建议这样写 *可以是变量、方法名
3、from module_name1 import 方法名 -->不建议使用
4、from module_name1 import 原方法名 as 别名
3、import的本质(路径搜索和搜索路径)
导入模块:本质就是将module_name1模块中所有的代码解释一遍后,赋值给module_name1变量(module_name1 = module_name1.py),import 新文件调用时要加 module_name1.变量/方法名。 from …… import * ,直接打开文件,将需要的代码直接使用,直接调用即可
导入包的文件:本质就是执行该包下的__init__.py文件
 
4、导入优化
避免重复检索模块下的方法,直接调用模块下的方法:
"""
import module_test
def test()
module_test.hello( ) #先检索module_test模块,再检索hello()方法
print("hello")
"""
------------------------------------------------------------------------------
from module_test import hello
def test()
hello( )
print("hello")
 
5、模块的分类
a、标准库
1、time与datatime
在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时间字符串 3)元组(struct_time)共九个元素。由于Python的time模块实现主要调用C库,所以各个平台可能有所不同。
 
UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间。在中国为UTC+8。DST(Daylight Saving Time)即夏令时。
 
时间戳(timestamp)的方式:通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。返回时间戳方式的函数主要有time(),clock()等。
 
元组(struct_time)方式:struct_time元组共有9个元素,返回struct_time的函数主要有gmtime(),localtime(),strptime()。下面列出这种方式元组中的几个元素
 
 
 
 
提供对操作系统进行调用的接口
-高级的 文件、文件夹、压缩包 处理模块
 
用于序列化的两个模块
  • json,用于字符串 和 python数据类型间进行转换,字典中的数据不能直接存在文件中,把python中的数据类型转化成字符窜,存在文件中,方便调用 解决不同平台中文件格式的互相交换
  • pickle,用于python特有的类型 和 python的数据类型间进行转换。python自己的数据间进行交换,支持所有的python数据类型
Json模块提供了四个功能:dumps、dump、loads、load
pickle模块提供了四个功能:dumps、dump、loads、load
 
一个简单的key,value将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式
 
xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融行业的很多系统的接口还主要是xml。
xml的格式如下,就是通过<>节点来区别数据结构的:
 
修改
删除
增加
 
 
用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 hmac 模块
正则表达式
     '^'     匹配字符开头,若指定flags MULTILINE,这种也可以匹配上(r"^a","\nabc\neee",flags=re.MULTILINE)
     "foo$""bfoo\nsdfsf"='*'     匹配*号前的字符0次或多次,re.findall("ab*","cabb3abcbbac")  结果为['abb', 'ab', 'a']
     1"ab+""ab+cd+abb+bba"'ab''abb''?'     匹配前一个字符1次或0次
   '{n,m}' 匹配前一个字符n到m次,re.findall("ab{1,3}","abb abc abbcbbb") 结果'abb', 'ab', 'abb']
     "abc|ABC""ABCBabcCD"'ABC'
'(...)' 分组匹配,re.search("(abc){2}a(123|456)c", "abcabca456c").group() 结果 abcabca456c
 
    "\Aabc""alexabc"'\Z'    匹配字符结尾,同$
    09
'\D'    匹配非数字
    ---]
'\W'    匹配非[A-Za-z0-9]
     "\s+""ab\tc1\n3"'\t'
 
 "(?P<province>[0-9]{4})(?P<city>[0-9]{2})(?P<birthday>[0-9]{4})""371481199306143242""city"'province''3714''city''81''birthday''1993'
 
 
 
b、开源模块
c、自定义模块

Python成长笔记 - 基础篇 (六)python模块的更多相关文章

  1. Python成长笔记 - 基础篇 (一)python简介

    一.Python介绍 Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/),由吉多·范罗苏姆(Guido van Rossum)于1989年发明,第一个公开发行版发行于1991 ...

  2. Python成长笔记 - 基础篇 (十一)

    回顾: 线程:资源的集合:内存共享,两个或多个线程同时修改一份数据时,造成结果可能不正确,必须加锁 进程:运行的最小单元 守护进程:在start之前设置setDemo() 队列queue:作用解耦,使 ...

  3. Python成长笔记 - 基础篇 (二)python基本语法

    Python的设计目标之一是让代码具备高度的可阅读性.它设计时尽量使用其它语言经常使用的标点符号和英文单字,让代码看起来整洁美观.它不像其他的静态语言如C.Pascal那样需要重复书写声明语句,也不像 ...

  4. Python成长笔记 - 基础篇 (十二)

    本节内容 ORM介绍 sqlalchemy安装 sqlalchemy基本使用 多外键关联 多对多关系 表结构设计作业 主题:学员管理系统 需求: 用户角色,讲师\学员, 用户登陆后根据角色不同,能做的 ...

  5. Python成长笔记 - 基础篇 (十)

    本节内容 进程.与线程区别 python GIL全局解释器锁 线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生产者消费者模型 Queu ...

  6. Python成长笔记 - 基础篇 (七)python面向对象

      三大特性: 1.封装:在类中对数据赋值.内部调用对外部用户是透明的,这使类变成了一个胶囊或容器,里面包含着类的数据和方法 2.继承:一个类可以派生出子类,在父类中定义的属性.方法会自动被子类继承 ...

  7. Python成长笔记 - 基础篇 (四)函数

    1.面向对象:类(class) 2.面向过程:过程(def) 3.函数式编程:函数(def)----python   1.函数:http://egon09.blog.51cto.com/9161406 ...

  8. Python成长笔记 - 基础篇 (三)python列表元组、字典、集合

    本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码   一.列表和元组的操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义 ...

  9. Python成长笔记 - 基础篇 (十三)--堡垒机

    堡垒机架构 堡垒机的主要作用权限控制和用户行为审计,堡垒机就像一个城堡的大门,城堡里的所有建筑就是你不同的业务系统 , 每个想进入城堡的人都必须经过城堡大门并经过大门守卫的授权,每个进入城堡的人必须且 ...

随机推荐

  1. char类型输出地址

    问题描述: 当输出char的地址时,发现输出的是一个字符: char ch = 'a'; cout<<&ch<<endl;//a @ 因为cout得到一个char类型的 ...

  2. 如何取消MSSQL自带智能提示步骤,使用第三方智能提示插件

    步骤1如下: [工具]——[选项]——[文本编辑器]——[Transact-SQL]——[IntelliSense]——[Transact-SQL IntelliSense 设置]——(取消选择)—— ...

  3. c语言折半查找

    折半查找又称为二分查找,它的前提是线性表中的记录必须是有序的(通常从小到大有序),线性表必须采用顺序存储. 折半查找的基本思想是 : 在有序表中,取中间记录作为比较对象,若给定值与中间记录的关键字相等 ...

  4. Java 工具集

    在 sudo -u tomcat 状态下执行 1. jstack jstack pid >> file : 打印当前 thread stack 状态 CPU 高分析流程 使用jstack分 ...

  5. WPF 中使用MVVM模式后,找回ListBox中的ListBoxItem元素

    ListBoxItem lstitem = this.list.ItemContainerGenerator.ContainerFromItem(m) as ListBoxItem; 其中this.l ...

  6. My安卓知识4--Media Player called in state 0

    //根据被传递的歌曲名称,选择播放的歌曲    public void playByName(String name){        mp = new MediaPlayer();        t ...

  7. 第三次作业——《K米评测》

    第三次作业--<K米评测> 一.调研.评测 上手体验 APP的图标做的不错,一眼就知道和KTV唱歌相关的 点进去就是连接包箱的界面和直播界面,把软件最重要的两个功能展示出来了,一目了然 热 ...

  8. [PHP] Xhprof 非侵入式使用指南

    一般使用 Xhprof ,按文档操作可以快速上手,文件头开启 Xhprof,应用结束处得到访问的url查看. 这种使用方式可以快速看到效果,同时也有一些不好的地方: 一是不利于重复利用写好的示例代码: ...

  9. Unity 编辑器的 界面布局 保存方法

    在软件界面的右上角(关闭按钮的下方),点击  layout  (界面)的下拉箭头. 弹出选项中的 save layout....(保存界面选项),输入命名,就可以生成这个界面的布局.  (软件本身也有 ...

  10. LeetCode OJ-- 二战 Palindrome Number

    判断一个 int 是否为回文的 有一点要注意的是: int x; int _x = abs(x); 对 x 取绝对值的时候,会发生溢出.比如  x = INT_MIN 即 -2147483648 而 ...