zoukankan      html  css  js  c++  java
  • Day5

    Day5 - Python基础5 常用模块学习

    模块介绍

    1.定义:

     模块:用来从逻辑上组织python代码(变量、函数、类、逻辑:实现一个功能),本质就是*.py结尾的python文件(文件名:test.py,对应的模块名:test)

    包:用来从逻辑上组织模块,本质就是一个目录(必须带一个__init__.py的文件)

    2.导入方法

    import module1_name,module2_name

    from module_name import  *(慎用,可能会和main中其它模块冲突)

    from module_name import  function1_name,function1_name(导入多个方法)

    from module_name import  function_name as new_ function_name(as可以在导入时给模块起别名,避免和其它模块名冲突)

    3.import本质(路径搜索和搜索路径)

    导入模块的本质就是把python文件解释一遍

    导入包的本质就是执行包下面的__init__.py文件,所以要在__init__.py文件把包下面的模块import

    1 #-*- coding:utf-8 -*-
    2 from . import test1 #.指从当前路径,导入test1模块

    import module_name--->module_name.py---->module_name.py的路径---->sys.path

    from module import function_name-->使用时可以直接调用function_name

    import module---->相当于把module下面的代码赋值给了module,调用时要module.function_name方式 

    模块路径获取方法(搜索sys.path中的目录):

    1 #-*- coding:utf-8 -*-
    2 import sys,os
    3 x=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    4 print(x)
    5 #os.path.abspath(__file__)获取当前文件绝对路径 
    6 #os.path.dirname()获取文件当前目录
    7 sys.path.append(x)  #将路径加入python搜索路径
    模块路径获取方法

    4.导入优化

       当前路径导入优化

     1 #-*- coding:utf-8 -*-
     2 #每次调用都要搜索module_test路径
     3 import module_test
     4 def logger():
     5     module_test.test()
     6     print('in the logger')
     7 
     8 def search():
     9     module_test.test()
    10     print('in the search')
    11 
    12 #不用每次搜索module_test路径,代码更优化
    13 from module_test import test
    14 def logger():
    15     test()
    16     print('in the logger')
    17 
    18 def search():
    19     test()
    20     print('in the search')
    View Code

    5.模块的分类

      a.标准库

      b.开源模块

      c.自定义模块

    time &datetime模块

      time模块

      定义:

    时间戳timestamp-以1970/1/1 0时间为准,往后的以秒为单位的时间偏移量

    格式化时间format string-以特定格式输出的时间,如2018/5/1 02:00:00

    结构化时间stuct-time-元组形式返回的时间,有9个元素(年月日时分秒、第几周、一年第几天、夏令时)

      3种格式的转换关系:

          

       datetime模块

    # print(datetime.datetime.now() + datetime.timedelta(3)) #当前时间+3天
    # print(datetime.datetime.now() + datetime.timedelta(-3)) #当前时间-3天
    # print(datetime.datetime.now() + datetime.timedelta(hours=3)) #当前时间+3小时
    # print(datetime.datetime.now() + datetime.timedelta(minutes=30)) #当前时间+30分

    random

     1 #0和1之间的小数
     2 >>> random.random()
     3 0.6736917079809672
     4 
     5 #1=< <=3
     6 >>> random.randint(1,3)
     7 3
     8 
     9 #1=< <3
    10 >>> random.randrange(1,3)
    11 2
    12 
    13 #1或23或5
    14 >>> random.choice([1,'23',[5]])
    15 [5]
    16 
    17 #随机取列表中2个
    18 >>> random.sample([1,'23',[5]],2)
    19 [[5], 1]
    20 
    21 #1和3之间的小数
    22 >>> random.uniform(1,3)
    23 1.8304702567160465
    24 
    25 #洗牌
    26 >>> item = [1,2,3,4]
    27 >>> random.shuffle(item)
    28 >>> item
    29 [3, 4, 1, 2]
    View Code 

    os

      OS是和操作系统交互的接口,常用于系统文件、文件夹、路径等相关操作

    sys

      sys.argv-从外部获取参数的桥梁,获取的参数以list方式存储

    1 import sys
    2 
    3 a=sys.argv
    4 print(a)
    5 
    6 c:>test.py what is this
    7 ['C:\test.py', 'what', 'is', 'this']
    View Code

    shutil

      高级的文件、文件夹和压缩处理模块

    json & picle

      eval-内置函数,可以把字符串变成python执行对象

      序列化:把内存中对象(变量)变成可存储和传输的过程

          好处:1.持久保存,如挂机状态就是序列表的应用;2.跨平台交互数据

    shelve

      序列化模块

    xml处理

      实现不同语言和程序之间交换数据的协议,没有json方便,以前使用,不过有些金融单位还在使用

    yaml处理

    configparser

      标准配置文件配置模块,格式和windown ini文件一样

    hashlib

      hash模块

    subprocess

      

    logging模块

      日志模块

    re正则表达式

      

    清除原臨時配置

  • 相关阅读:
    栈和堆的区别【转】
    C++虚函数表解析(转)
    C++编码规范(转)
    全局变量的声明和定义 以及dll中全局变量的导出
    Sizeof与Strlen的区别与联系.
    利用事件对象实现线程同步
    创建互斥对象同步线程
    MFC GDI笔记 转
    ClientToScreen( )和ScreenToClient( )
    Visual C++线程同步技术剖析
  • 原文地址:https://www.cnblogs.com/pynetwork/p/8989163.html
Copyright © 2011-2022 走看看