json and pickle模块

用途是为了持久化信息,这种持久化方式可以和其他程序语言兼容,一般都支持json,json只能持久化数据,pickle是python特有的方式,可以持久化所有信息和数据结构

  1. #json,pickle的序列化和反序列化
  2.  
  3. import json,pickle
  4.  
  5. #序列化
  6. info={
  7. 'name':"wy",
  8. 'age':22
  9. }
  10. print(info["age"])
  11. # with open("json_test.txt",mode="w",encoding="utf-8") as f:
  12. # f.write( json.dumps(info))
  13. #完全等同于
  14. with open("json_test.txt",mode="w",encoding="utf-8") as f:
  15. json.dump(info,"json_test.txt")
  16. with open("json_test.txt", mode="wb", encoding="utf-8") as f:
  17. json.dump(info, "json_test.txt")
  18. pickle.dump(info,"json_test.txt")
  19.  
  20. #反序列化
  21.  
  22. # with open("json_test.txt",mode="r",encoding="utf-8") as f:
  23. # data=json.loads(f.read())
  24. with open("json_test.txt",mode="r",encoding="utf-8") as f:
  25. data=json.load("json_test.txt")
  26. with open("json_test.txt",mode="rb",encoding="utf-8") as f:
  27. data=pickle.load("json_test.txt")
  28.  
  29. print(data["age"])
  30.  
  31. #json对于基础数据类型字典的序列化和反序列化,所有语言通用,可以通过json来在不同语言之间传递数据。
  32. #pickle,对于全部数据类型字典的序列化和反序列化,只能python使用,具体使用方法和json一样的。
  33.  
  34. #重要:程序中,每个序列化文件只dump一次,每次load一个序列化文件!!!

time模块

  1. import time
  2. # 标准库:
  3. # 1、time和datetime
  4. # a.time模块:
  5. #提供属性:
  6. # timezone,获取当前时区的秒数,北京时间东八区为28800
  7. # altzone,与GMT与夏令时之间换算的秒数
  8. # daylight,是否使用了夏令时,0代表没有使用,1代表使用
  9. # tzname,不知道
  10. #提供方法:
  11. time.time()#,获取当前时间,GMT时间,秒数,当前时间减掉1970.1.1 00:00:00,时间戳
  12. time.sleep()#,睡几秒。。。。
  13. time.gmtime()#,传入一个时间戳秒数,返回一个九位元组,不传则返回当前标准时间的元组,结果是UTC时区
  14. time.localtime()#,传入一个时间戳秒数,返回一个九位元组,不传则返回当前标准时间的元组,结果是UTC+8时区(常用),做定时任务?直接取 呵呵
  15. time.mktime()#,传入一个元组,转为一个秒数时间戳。
  16. time.strftime()#,一个九位元组转为格式化字符串时间,参数("%Y-%m-%d %H:%M:%S",时间九位元组)
  17. time.strptime()#,格式化字符串时间,转为格式九位元组,要传入一个格式化日期,参数(字符串时间,"%Y-%m-%d %H:%M:%S")
  18. time.asctime()#,传一个九位元组,返回一个字符串,接收九位元组
  19. time.ctime()#,传一个时间戳秒数,返回一个字符串,接收秒数

datetime模块

  1. import datetime
  2. # b.datetime模块(平时主要使用这个):
  3. # 提供属性:
  4. # datetime类
  5. # 提供方法:
  6. datetime.datetime.now() #获取当前时间
  7. datetime.datetime.now()+datetime.timedelta(3) #timedelta()方法无法单独使用,与now()方法结合来计算3天后的时间,
  8. datetime.datetime.now()+datetime.timedelta(-3) #timedelta()方法无法单独使用,与now()方法结合来计算3天前的时间,
  9. datetime.datetime.now()+datetime.timedelta(hours=3) #计算3小时后的时间。
  10. datetime.datetime.now()+datetime.timedelta(hours=-3) #计算3小时前的时间。
  11. datetime.datetime.now()+datetime.timedelta(minutes=30) #计算30分钟后的时间。
  12.  
  13. datetime.datetime.now().replace(minute=3,hour=2) #时间替换,改改分钟,改改小时
  14.  
  15. # 时间有三种形式:
  16. # a.时间戳
  17. # b.格式化字符串
  18. # c.九位元组

random模块,取随机数的

  1. import random
  2. #random函数:
  3. #简易的验证码,可以考虑这么干
  4. random.random() #获取0 - 1之间随机的浮点数
  5. random.uniform(1,10) #获取1-10之间随机1个浮点数
  6. random.randint(1,7) #获取包括1,7在内的 随机整数
  7. random.randrange(1,7) #获取包括1,不包括7在内的随机整数
  8. random.choice([]) #传入一个列表随机取1个元素
  9. random.sample([],3)#传入一个列表,随机取3个元素
  10. random.shuffle([]) #把传入的一个列表,顺序随机打乱

os模块,怼操作系统用的

  1. import os
  2.  
  3. #os模块用于操作操作系统
  4.  
  5. os.getcwd() #获取当前的工作路径
  6. os.chdir("path")#切换工作路径,推荐使用os.chdir(r"c:\Users")
  7. os.curdir #当前路径
  8. os.pardir #父级路径
  9. os.makedirs(r"c:\a\b\c") #递归的创建路径
  10. os.removedirs(r"c:\a\b\c") #递归删除空路径
  11. os.mkdir(r"c:\a\b") #生成单级路径,相当于linux mkdir
  12. os.rmdir(r"c:\a\b") #删除单级路径。
  13. os.listdir(r"c:\a\b") #查看路径下的东西,返回list
  14. os.remove(r"c:\a\b") #删除一个文件
  15. os.rename("oldname","newname") #文件重命名
  16. os.stat(r"c:\a\b") #返回文件状态信息。
  17.  
  18. os.sep #很重要,这个属性是,系统的分隔符,主要用于跨平台
  19. os.linesep #很重要,这个属性是,系统的换行符,主要用于跨平台
  20. os.environ #很重要,返回系统的环境变量
  21. os.pathsep #很重要,路径的分隔符,分隔的是路径,比如环境变量。
  22.  
  23. os.name #返回程序运行的操作系统简称标记
  24. os.system("xxxx") #用于执行命令
  25.  
  26. os.path.abspath("xxx") #获取某文件的绝对路径
  27. os.path.split("xxxx\\xxxx") #分割路径和文件,返回元组,元素1是路径,元素2是文件
  28. os.path.dirname("xxxx") #返回传入路径的所在路径
  29. os.path.basename("xxxx") #返回路径中的最后的
  30. os.path.exists("xxxx") #返回路径是否存在
  31. os.path.isabs("xxxx") #是否为绝对路径
  32. os.path.isfile("xxxx") #判断是否是一个文件
  33. os.path.isdir("xxxx") #判断是否为一个路径
  34. os.path.join("xxx","mmm") #组合路径结果。如果绝对路径没有出现在第一个参数,而出现在后边了,那前边的参数就被忽略了
  35. os.path.getatime("xxxx") #获取文件的最后存取时间,时间戳
  36. os.path.getmtime("xxxx") #获取文件的修改存取时间,时间戳

shutil文件操作用的

  1. import shutil #用于文件操作。
  2.  
  3. #用户拷贝文件
  4. file1=open("xxxx","r",encoding="utf-8")
  5. file2=open("xxxx2","w",encoding="utf-8")
  6. shutil.copyfileobj(file1,file2) #把file1 文件指针流灌输到 file2文件指针流
  7. shutil.copyfile("xxxx","xxxx2") #把xxxx 拷贝到xxxx2
  8. shutil.copymode() #仅拷贝权限,内容,组,用户,均不变
  9. shutil.copystat() # 仅拷贝了文件状态,什么修改时间,权限,之类的,linux更好用点
  10. shutil.copy("xxxx","xxxx2") #拷贝文件和权限
  11. shutil.copy2("xxxx","xxxx2") #完全拷贝文件和权限。
  12.  
  13. shutil.copytree("xxxx","xxxx2") #完全的整个的 把目录树下的东西 连根复制到另一个路径去 #有用
  14. shutil.rmtree("xxxx") #完全删掉整个目录树 #有用
  15.  
  16. shutil.move() #递归的去移动文件
  17.  
  18. shutil.make_archive("xxxx","gztar","mode2_2") #压缩文件,xxxx压缩以后的文件名,gztar压缩格式,mode2_2被压缩的路径,压缩格式支持,zip gztar tar bztar

sys模块 python环境用的

  1. import sys
  2.  
  3. # 获取脚本名字
  4. print 'The name of this program is: %s' %(sys.argv[0])
  5. # 获取参数列表
  6. print 'The command line arguments are:'
  7. for i in sys.argv:
  8. print i
  9. # 统计参数个数
  10. print 'There are %s arguments.'%(len(sys.argv)-1)
  11.  
  12. sys.platform #获取当前执行环境的平台,如win32表示是Windows 32bit操作系统,linux2表示是linux平台;
  13.  
  14. sys.path #path是一个目录列表,供Python从中查找第三方扩展模块。在python启动时,sys.path根据内建规则、PYTHONPATH变量进行初始化。
  15.  
  16. sys.builtin_module_names #返回一个列表,包含内建模块的名字
  17. sys.exit(n) #调用sys.exit(n)可以中途退出程序,当参数非0时,会引发一个SystemExit异常,从而可以在主程序中捕获该异常
  1. configparser模块,用于读取ini格式配置文件,我最喜欢的配置文件形式
  1. import configparser,os
  2. conf_file=os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))+os.sep+"conf"+os.sep+"transact_setting.conf"
  3.  
  4. config=configparser.ConfigParser() #得到一个配置文件实例
  5.  
  6. config.read(conf_file)
  7.  
  8. def get_config():
  9. return config #用这个config实例,就当个字典用就ok了

hashlib用来加密的

  1. import hashlib,hmac,datetime
  2.  
  3. pwd="welkjasf199725" #这是输入的密码
  4.  
  5. odtm=datetime.datetime.now()
  6. for i in range(1000000):
  7. mmm=hashlib.sha256() #使用sha256算法,还有其他很多算法
  8. mmm.update(str(i).encode("utf-8")) #update就是给mmm算法实例赋值
  9. mmm.hexdigest() #进行加密计算
  10. ndtm=datetime.datetime.now()
  11. print(ndtm-odtm)

logging模块,很重要,输出日志用的

  1. import logging
  2.  
  3. # #日志级别 先后顺序:
  4. # logging.debug("dddddddddddd")
  5. # logging.info("kkkkkkkkkkkk")
  6. # logging.warning("gogogogogogo")
  7. # logging.error("eeeeeeeeeeeeee")
  8. # logging.critical("stopstopstop")
  9. #
  10. # #输出日志到文件
  11. # logging.basicConfig(filename="mode_error.log",
  12. # level=logging.DEBUG,
  13. # datefmt="%Y-%m-%d %H-%M-%S",
  14. # format="%(asctime)s-[%(levelname)s]:%(filename)s - %(module)s - %(funcName)s,on:%(lineno)d %(message)s")
  15. # logging.debug("dddddddddddd")
  16. # logging.info("kkkkkkkkkkkk")
  17. # logging.warning("gogogogogogo")
  18. # logging.error("eeeeeeeeeeeeee")
  19. # logging.critical("stopstopstop")
  20.  
  21. #创建一个logger对象
  22. logger=logging.getLogger("TEST_LOGGER")
  23. logger.setLevel(logging.DEBUG)
  24.  
  25. #设定一个屏幕handler(console handler) 并且设定一个级别
  26. ch=logging.StreamHandler()
  27. ch.setLevel(logging.WARNING)
  28.  
  29. #设定一个文件handler(file handler )并且设定一个级别
  30. fh=logging.FileHandler("mode_error.log",encoding="utf-8")
  31. fh.setLevel(logging.ERROR)
  32.  
  33. #定义日志格式:
  34. fh_formatter=logging.Formatter("%(asctime)s-[%(levelname)s]:%(filename)s - %(module)s - %(funcName)s,on:%(lineno)d %(message)s")
  35. ch_formatter=logging.Formatter("%(asctime)s-[%(levelname)s]:on:%(lineno)d %(message)s")
  36.  
  37. #关联日志格式
  38. fh.setFormatter(fh_formatter)
  39. ch.setFormatter(ch_formatter)
  40.  
  41. #把 各个handler加入到logger
  42. logger.addHandler(fh)
  43. logger.addHandler(ch)
  44.  
  45. #开始使用日志
  46. logger.error("loger loger loger")
  47. logger.warning("dddddddddddddddddddddddddddddddddddddd")

re 也挺重要的,正则表达式模块

  1. import re
  2.  
  3. a=re.match("","")#第一个参数是正则规则,第二个参数是需要匹配的字符串,match是从左到有匹配
  4. a.group() #显示出来匹配到的东西
  5.  
  6. # 正则表达式
  7. "." #匹配除\n外的字符,可以匹配特殊字符
  8. "+" #匹配一次或者多次。
  9. "^" #匹配开头,match方法下"^"没啥意义
  10. "*" #匹配*号前边的字符0次或多次。
  11. "?" #匹配一个字符1次或0次。
  12. "$" #匹配字符结尾
  13. "{m}"#匹配前一个规则m次。
  14. "{n,m}"#匹配前一个规则n到m次
  15. "|" #匹配re.match("abc|ABC","abcdefgABCDEFG") 匹配两边都算数
  16. "(. . . )" #多个规则匹配后,结果分组,用a=re.match().groups()方法获取,返回的是元组
  17.  
  18. "\A" # 和 "^"一样的
  19. "\Z" # 和 "$"一样的
  20. "\w" #匹配[A-Z0-9a-z]的一个字符一次,必须匹配到一次,否则异常。
  21. "\W" #匹配非[A-Z0-9a-z]的一个字符一次
  22. "\d" #匹配数字0-9
  23. "\D" #匹配非数字
  24. "s" #匹配空白字符:\t \n \r 什么的
  25.  
  26. m=re.search("(?P<name>\d{2})(?P<sex>\d{4})(?P<savings>\d{3})","").groupdict() #这样取字典
  27. print(m)
  28.  
  29. #re的方法
  30. re.match("","")#第一个参数是正则规则,第二个参数是需要匹配的字符串,match是从左到有匹配
  31. re.search("","")#第一个参数是正则规则,第二个参数是需要匹配的字符串,search是在字符串中搜索,仅匹配一次
  32. re.findall("","")#第一个参数是正则规则,第二个参数是需要匹配的字符串,findall是按照规则全部取出,变成列表。
  33. re.split("","")#第一个参数是正则规则,第二个参数是需要匹配的字符串,split是按照规则匹配,再按照匹配到的为分隔符,分割字符串
  34. re.sub("","","",count=2) #第一个参数是正则,第二个参数是要替换为的东西,第三个参数是被匹配的字符串,第四个参数是替换几次,不写就全部替换
  35.  
  36. #如果想要匹配转义符 斜杠\ (遭遇的字符串里本来就有)那就需要\\\\4个斜杠来做这事,这是匹配一个\
  37. # [^()] #中括号里边的^号 就是不包含的意思

python3.x Day4 模块!!的更多相关文章

  1. Python3之turtle模块的使用

    Python3之turtle模块的使用     直接扣代码就行: import turtle as t t.pensize(4) t.hideturtle() t.colormode(255) t.c ...

  2. python基础系列教程——Python3.x标准模块库目录

    python基础系列教程——Python3.x标准模块库目录 文本 string:通用字符串操作 re:正则表达式操作 difflib:差异计算工具 textwrap:文本填充 unicodedata ...

  3. Python3:Requests模块的异常值处理

    Python3:Requests模块的异常值处理 用Python的requests模块进行爬虫时,一个简单高效的模块就是requests模块,利用get()或者post()函数,发送请求. 但是在真正 ...

  4. Python3中正则模块re.compile、re.match及re.search函数用法详解

    Python3中正则模块re.compile.re.match及re.search函数用法 re模块 re.compile.re.match. re.search 正则匹配的时候,第一个字符是 r,表 ...

  5. Python3安装Celery模块后执行Celery命令报错

    1 Python3安装Celery模块后执行Celery命令报错 pip3 install celery # 安装正常,但是执行celery 命令的时候提示没有_ssl模块什么的 手动在Python解 ...

  6. Python3之configparser模块

    1. 简介 configparser用于配置文件解析,可以解析特定格式的配置文件,多数此类配置文件名格式为XXX.ini,例如mysql的配置文件.在python3.X中 模块名为configpars ...

  7. python3.7 os模块

    #!/usr/bin/env python __author__ = "lrtao2010" #python3.7 os模块 #os模块是与操作系统交互的一个接口 # os.get ...

  8. python3.7 json模块

    #!/usr/bin/env python __author__ = "lrtao2010" #python3.7 json模块 ''' 要在不同的编程语言之间传递对象,就必须把对 ...

  9. python3.7 random模块

    #!/usr/bin/env python __author__ = "lrtao2010" #python3.7 random模块 import random #随机模块 # r ...

随机推荐

  1. ASP.NET Core MVC 打造一个简单的图书馆管理系统 (修正版)(三)密码修改以及密码重置

     前言: 本系列文章主要为我之前所学知识的一次微小的实践,以我学校图书馆管理系统为雏形所作. 本系列文章主要参考资料: 微软文档:https://docs.microsoft.com/zh-cn/as ...

  2. bzoj 1079: [SCOI2008]着色方案【记忆化搜索】

    本来打算把每个颜色剩下的压起来存map来记忆化,写一半发现自己zz了 考虑当前都能涂x次的油漆本质是一样的. 直接存五个变量分别是剩下12345个格子的油漆数,然后直接开数组把这个和步数存起来,记忆化 ...

  3. NOIp2013 货车运输 By cellur925

    题目传送门 A 国有 n 座城市,编号从 1 到 n ,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重. 现在有 q 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下 ...

  4. Ubuntu18安装sublime 3

    转自 https://blog.csdn.net/qq_41590417/article/details/80461075 wget -qO - https://download.sublimetex ...

  5. icons使用

    1.将选中图标加入项目 2.unicode方式查看连接在线连接 3.复制代码到样式表 4.引用样式,并设置I标签,颜色和大小可以通过设置i标签color和font-size进行调整 <i cla ...

  6. jacoco 的使用及与jenkins的集成

    1.把jacocoagent.jar的包放入到dockerfile COPY jacocoagent.jar /opt/jacoco/lib/jacocoagent.jar 2.打完镜像,需要启动容器 ...

  7. bitset优化背包问题

    https://blog.csdn.net/HowardEmily/article/details/77340566 留坑待填

  8. javaweb-JSP action中附件下载的写法

     附件下载(包括图片,exl,word)在前台必须给出一个iframe 或者类似于window的窗口,另外,Java文件下载不能通过ajax进行请求,必须添加src属性首选,前台的链接拼接html如下 ...

  9. [转]访问 OData 服务 (WCF Data Services)

    本文转自:http://msdn.microsoft.com/zh-SG/library/dd728283(v=vs.103) WCF 数据服务 支持开放式数据协议 (OData) 将数据作为包含可通 ...

  10. spark 学习路线及参考课程

    一.Scala编程详解: 第1讲-Spark的前世今生 第2讲-课程介绍.特色与价值 第3讲-Scala编程详解:基础语法 第4讲-Scala编程详解:条件控制与循环 第5讲-Scala编程详解:函数 ...