zoukankan      html  css  js  c++  java
  • Python成长笔记

    本节大纲:

    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"," abc eee",flags=re.MULTILINE)
         "foo$""bfoo sdfsf"='*'     匹配*号前的字符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"''    匹配字符结尾,同$
        09
    'D'    匹配非数字
        ---]
    'W'    匹配非[A-Za-z0-9]
         "s+""ab c1 3"' '
     
     "(?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、自定义模块
  • 相关阅读:
    进入javascript的学习了
    详解CSS display:inline-block的应用(转)
    CSS学习第一天
    HTML小结~
    表单提交中的input、button、submit的区别(转来学习)
    第二天又是充实的一天
    java开班啦~步入程序员的第一步
    sql 两大类 DDL数据定义语言 和DCL数据控制语言
    单行函数(日期函数)
    单行函数
  • 原文地址:https://www.cnblogs.com/huangmx-amin/p/5809362.html
Copyright © 2011-2022 走看看