• 库、时间、hashlib、序列化与Git


    一、库的管理

    1、标准库安装python解释器,直接自带的

    os,sys,json,csv,time,datetime,hashlib

    2、第三方的库

    全球顶级程序员(有专门的网站可以下载)

    安装方式

    2.1、在线安装

          安装——pip3 install 库的名称

          卸载——pip3 uninstall 库的名称

          升级——pip3 install -U 库的名称

    2.3、离线安装

    安装网站:https://pypi.org/project/

    2.3、常用的第三方的库

          selenium:UI测试框架:pip3 install selenium

          Appium:移动UI测试框架

          requests:接口测试框架:pip3 install requests

          pymysql:操作MYSQL:pip3 install pymysql

          xlrd:操作Excel文件:pip3 install xlrd

          Django:全栈WEB框架

          flask:轻量级WEB框架

          fast:异步WEB框架

          Pytest:单元测试框架:pip3 install Pytest

    3、自定义的库:自己编写的python文件

    二、针对路径的处理:os

    文件与模块的名称不能一致,如:os设置名称需要加上后缀

    使用库的时候需要导入它:import os

    1、获取当前路径

    当前路径:cwd

    import os
    # 获取当前路径
    print(os.getcwd())

     

    2、获取当前目录下的所有文件和文件夹

    listdir:列表的方式

    for item in os.listdir(path=os.getcwd()):
        print(item)

     

    3、获取文件和目录信息(在当前路径的上级路径中输出)

    stat:统计

    print(os.stat("D:\学习资料\Python\CODE"))

     

    4、获取当前路径

    file:文件,前后都有两个下划线_

    print(os.path.dirname(__file__))

     

    5、获取当前路径的上一级路径 

    print(os.path.dirname(os.path.dirname(__file__)))

     

    6、创建新的文件,填写信息后读出输入的信息

    base_dir:基础路径      filePath:文件路径

    import os
    base_dir=os.path.dirname(__file__)
    filePath=os.path.join(base_dir,"data","login.txt")
    with open(filePath,"r",encoding="utf-8") as f:
        print(f.read())

    7、获取操作系统

    path:路径

    import os
    # 获取操作系统
    print(os.name)
    # 环境变量
    print(os.environ)
    # 判断文件是否存在(首先需要输出之前的文件信息)
    base_dir=os.path.dirname(__file__)
    filePath=os.path.join(base_dir,"data","login.txt")
    print(os.path.exists(filePath))

    三、time实战

    time模块提供了各种与时间有关系的库

    1、获取时间戳

    import time
    print(time.time())

    2、获取当前时间字符串的格式

    import time
    print(time.ctime())

    3、休眠N秒后再输出:sleep,秒为单位

    import time
    time.sleep(N秒)
    print("需要输出的内容")

    4、时间戳转为本地时间

    localTime:当地时间

    import  time
    localTime=time.localtime(time.time())
    print('年:{0},月:{1},日:{2}'.format(localTime.tm_year,
    localTime.tm_mon,localTime.tm_yday))

    5、中国常用时间格式

    strftime:取得当前的时间

    # 中国时间显示格式
    import time
    print(time.strftime("%T-%M-%D %H-%M-%S",time.localtime()))
    print(time.strftime("%T-%M-%D %X",time.localtime()))
    print(time.strftime("%T-%M-%D %x",time.localtime()))

    四、datatime:日期时间

    相比time的模块,datetime也是表示时间的,但是更加直观

    1、获取当前时间

    # 获取当前时间
    import datetime
    print(datetime.datetime.now())

    2、在当前时间基础上增加或者减少多久的天数或者小时

     时间增量:timedelta

    import datetime
    print(datetime.datetime.now()+datetime.timedelta(days=10))

    3、在当前时间基础上增加或者减少多久的天数或者小时

    # 在当前时间基础上增加或者减少多久的天数或者小时
    import datetime
    当前天数增加和减少10天
    print(datetime.datetime.now()+datetime.timedelta(days=10))
    print(datetime.datetime.now()+datetime.timedelta(days=-10))
    当前时间增加10小时
    print(datetime.datetime.now()+datetime.timedelta(hours=10))
    当前时间减少5分钟
    print(datetime.datetime.now()+datetime.timedelta(minutes=-5))

    4、时间戳转换格式——给的是时间戳,需要处理成当前时间

    fromtimestamp:从时间戳

    # 时间戳转换格式,给的是时间戳,需要处理成当前时间
    import datetime
    import time
    print(datetime.datetime.fromtimestamp(time.time()))

    五、hashlib

    open Api开放平台

    1、对请求参数(字典)进行排序

    2、处理成key=value&key=value

    3、进行md5的加密,生成密钥

    hashlib里面主要会涉及到md5的加密算法的

    urllib:是Python中用来处理URL的工具包

    parse:解析

    # hashlib解密
    import hashlib
    from urllib import parse
    import time
    # 定义标记/符号
    def sign():
       dict1={'name':'wp','age':34,'sex':'girl','time':time.time()}
    # 对请求的参数进行ascill码排序
       data=dict(sorted(dict1.items(),key=lambda item:item[0]))
    # 把请求参数处理成key=value&key1=value1&key2=value2
       data=parse.urlencode(data)
    # 进行md5的加密
       m=hashlib.md5()
    # 要把字符串的数据处理成bytes数据类型
       m.update(data.encode('utf-8'))
       return m.hexdigest()
    print(sign())

    六、序列化和反序列化:json

    1、序列化

    把内存里的数据类型转为字符串的数据类型,使能够存储到硬盘或通过网络传输到远程,因为硬盘或者网络传输时只接受bytes的数据类型。简单的说就是把Python的数据类型(字典,元组,列表)转为str的数据类型过程

    2、反序列化

    就是str的数据类型转为Python对象的过程。

    3、列表的序列化与反序列化

    内容不变,但是类型发生改变

    # 列表的序列化与反序列化
    import json
    list1=["go","java","python"]
    # 列表转字符串--序列化关键字:dumps
    list_str=json.dumps(list1)
    print(list_str)
    print(type(list_str))
    # 字符串转列表--反序列化关键字:loads
    str_list=json.loads(list_str)
    print(str_list)
    print(type(str_list))

    4、元组的序列化与反序列化

    # 元组的序列化与反序列化
    import json
    tuple1=("go","python")
    tuple_str=json.dumps(tuple1)
    print(tuple_str)
    
    str_tuple=json.loads(tuple_str)
    print(type(str_tuple))
    print(str_tuple)

    5、字典的序列化与反序列化

    # 字典的序列化与反序列化
    import json
    dict1={"name":"wp","age":22,"sex":"girl"}
    
    dict_str=json.dumps(dict1)
    print(dict_str)
    
    str_dict=json.loads(dict_str)
    print(type(str_dict))
    print(str_dict)

    6、针对字典处理

    indent=True:结构化输出

    ensure_ascii=False:处理中文

    import json
    dict1={"name":"wp","age":22,"sex":"girl","datas":[
        {"math":95,"english":84,},
        {"wuli":84,"listory":96}]}
    print(json.dumps(dict1,indent=True,ensure_ascii=False))

    7、针对文件的序列化与反序列化

    序列化:把目标写到文件中。dump和load是仅针对文件的序列化与反序列化

    # 针对文件的序列化和反序列化
    import json
    dict1={"name":"王潘","age":22,"sex":"girl","datas":[
    {"math":95,"english":84,},
    {"wuli":84,"listory":96}]}

    # encoding="utf-8":针对字典中的文字出现乱码
    json.dump(dict1,open(
    "data.txt","w",encoding="utf-8"),ensure_ascii=False)

    8、反序列化:从文件里面读取文件的内容

    # 反序列化:从文件里面读取文件的内容
    print(json.load(open("data.txt","r",encoding="utf-8")))

    七、Git创建库保存数据

    1、下载在环境变量path中添加

    2、在控制台中进入D:\学习资料\Python\CODE\testDev中

    3、输入git init——创建仓库

    4、之后再输入git add .——添加所有的文件

    5、配置提交邮箱的账户和name

    git config --global user.email "QQ邮箱号" git config --global user.name "wp"

    git commit -m "提交所有的文件"

    修改过的内容会显示在其中

  • 相关阅读:
    for循环中的作用域 闭包
    for,forEach,for in ,for of,$.each和$().each应用
    交换变量的值
    URL和URI的关系
    Delphi Idhttp.Get方法
    Delphi 时间转换异常处理(各Win系统时间显示格式不同)
    Delphi 接口统一方法
    Delphi 高级停靠(Dock)技术的实现[转载]
    delphi 客户端_动态装载插件DLL
    ADOQuery导出Excel超快(大量数据)!
  • 原文地址:https://www.cnblogs.com/Kaylee/p/16083037.html
Copyright © 2020-2023  润新知