• python学习第六天


    一、 模块介绍
    1、 模块的定义:用一堆代码实现了某个功能的代码集合
         包的定义:本质就是一个目录(必须导游一个_init_.py文件),是用来从逻辑上组织模块的。
    2、 需要多个函数才能完成(函数可以在不同的.py文件中),n个.py文件组成的代码集合成为模块。例如:os是系统相关的模块。File是文件操作相关的模块。
    3、 模块的导入方法:
    方法一:import module _name
    方法二:导入多个文件:import module1_name,module2_name
    方法三:from module_name   import *  不建议用(原因:导入了module_name下的所有方法)
    方法四:from module_name import m1,m2,m3
    方法五:from module_name import  import logger as logger_name
    4、 import模块的本质:就是把python文件解释了一遍
    5、 导入包的本质:就是去执行该包下的_init.Py 文件
    6、 包的导入方法:(导入包本身没有实质的意义),要想导入包下的文件,需要修改包下的_init_.py 文件。然后在_init.py 文件中添加from.import  test1.
    7、 内置函数_file_ :代表当前文件的文件名
    8、 Os.path.abspath(_file_)    # 获取当前文件的文件名
    9、 Os.path.dirname(Os.path.abspath(_file_))     # 获取名录名
    10、 From.import test1 # 从当前模块下导入test1
    11、 模块的分类:
     自定义模块
     内置标准模块(又称标准库)
     开源模块
    二、 Time  & datetime 模块(标准库)
     时间戳的本质是:秒数 (是从1970年开始到现在的时间:即:当前的时间-1970.01.01  零点零秒。然后换算成秒数)(以1970年开始计算的原因:1970年python诞生,所以python语言以1970年作为元年计算)
     Utc时间:格林威治时间
    1、 Time 模块
    import time
    import datetime
    x=time.time()
    print(x)
    # print(time.altzone)   # 返回与utc时间的时间差,以秒计算
    # print(time.altzone/3600)
    # print(time.time()/(3600*24*365))
    # print(time.struct_time)
    # print(time.localtime()) # 返回本地时间
    t = time.localtime(time.time()+3600*3)    # 只能接收秒。可用于预定时间出发任务的功能
    print(t)

    print(time.gmtime()) # 返回utc时间
    print(time.ctime())  # 返回当前是时间


       将字符串转化为时间戳

    日期字符串转换成时间戳
    #
    # string_struct=time.strptime("2016/05/14","%Y/%m/%d") #将字时间符串格式的转换为struct时间对象格式
    # print(string_struct)
    #
    #
    # string_stamp = time.mktime(string_struct) #将struct 时间转换为时间戳的样式
    # print(string_stamp)
    #
    # # 将时间戳转换为日期字符串
    #
    # print(time.gmtime(time.time()-86640)) #将utc时间戳转换成struct_time格式
    # print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime())) #将utc struct_time格式转成指定的字符串格式

    # 时间的加减

    import datetime

    print(datetime.datetime.now()) # 返回当前时间
    print(datetime.date.fromtimestamp(time.time())) # 时间戳直接转换为日期格式如:2016-11-17
     
     

    三、 Random

     

    1random模块的用途:生成随机值

    2、练习
    import random
    # print(random.random())    #用于生成一个0-1之间的一个浮点数
    # print(random.randint(0,9))   #
    用于生一个0-9之间的一个整数,包含9
    print(random.randrange(0,9))    # 用于生成一个0-9的一个整数,不包含9
    print(random.choice('12345abcd')) # 从序列中获取一个随机元素


    #
    洗牌
    items=[1,2,3,4,5,6]
    random.shuffle(items)
    print(items)

    四、 Shutil 模块

    1、        
    Shutil模块的用处:高级的文件、文件夹、压缩包的处理模块
    2、        
    import shutil

    # f1 = open('笔记',encoding='utf-8')
    # f2 = open('
    笔记1','w',encoding='utf-8')
    # shutil.copyfileobj(f1,f2) 
    # 将文件内容copy到另一个文件中,可以copy部分内容
    # shutil.copyfile('
    笔记','笔记2') # copy文件
    # shutil.copy('
    笔记','笔记3')   # copy文件和权限
    #shutil.copytree('test1','test_new') #
    递去归的copy 一个目录到另一个目录

     # shutil.rmtree('test_new') #
    递归的去删除一个目录

    shutil.make_archive('ceshi','zip','E:/test/day5'# 创建压缩包并返回文件路径,例如:ziptar

    八、 Shelve

    Shelve 模块是对一个简单的keyvalue将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式。是对pickle更上一层的分装。
    
    
    # 写入一个文件
    import shelve
    import datetime

    a = shelve.open(
    'shelve_01')

    info = {
    'age':22,'job':'tester'}

    name = [
    'jim','rain','lily']

    a[
    'info'] = info   # 持久化列表
    a['name'] = name   # 持久化dict
    a['date'] = datetime.datetime.now()

    a.close()

    # 读出文件

    a = shelve.open('shelve_01')

    print(a.get('info'))
    print(a.get('name'))
    print(a.get('date'))
     
     
    九、 Xml 处理

    1、        xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单。

    2、        pythonxml的操作

     

    import  xml.etree.ElementTree as  ET

    namelist = ET.Element("NemaList") # 输入需要处理的文件名
    name = ET.SubElement(namelist,"name",attrib={"whatever":"YES"})
    name.text = "rain"
    age = ET.SubElement(name,"age")
    age.text = "22"
    role = ET.SubElement(name,"role")
    role.text = "teacher"
    十、 Yaml 处理
    十一、 Configparser
    十二、 Hashlib
    十三、 Subprocess
    十四、 Logging 模块
    十五、 Re正则表达式
  • 相关阅读:
    点聚weboffice插件自定义菜单
    Delphi程序带参数运行
    64位系统下注册32位dll文件
    64位进程调用32位dll的解决方法
    memcached启动脚本以及telnet测试
    LSM树由来、设计思想以及应用到HBase的索引
    B树(B-Tree)的由来、数据结构、基本操作以及数据库索引的应用
    java读取utf8配置文件乱码
    设置某个ip对mysql服务器有权限,以及mysql定时备份
    《HBase实战》
  • 原文地址:https://www.cnblogs.com/maxiaotu/p/6067981.html
Copyright © 2020-2023  润新知