json and pickle模块

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

#json,pickle的序列化和反序列化

import json,pickle

#序列化
info={
'name':"wy",
'age':22
}
print(info["age"])
# with open("json_test.txt",mode="w",encoding="utf-8") as f:
# f.write( json.dumps(info))
#完全等同于
with open("json_test.txt",mode="w",encoding="utf-8") as f:
json.dump(info,"json_test.txt")
with open("json_test.txt", mode="wb", encoding="utf-8") as f:
json.dump(info, "json_test.txt")
pickle.dump(info,"json_test.txt") #反序列化 # with open("json_test.txt",mode="r",encoding="utf-8") as f:
# data=json.loads(f.read())
with open("json_test.txt",mode="r",encoding="utf-8") as f:
data=json.load("json_test.txt")
with open("json_test.txt",mode="rb",encoding="utf-8") as f:
data=pickle.load("json_test.txt") print(data["age"]) #json对于基础数据类型字典的序列化和反序列化,所有语言通用,可以通过json来在不同语言之间传递数据。
#pickle,对于全部数据类型字典的序列化和反序列化,只能python使用,具体使用方法和json一样的。 #重要:程序中,每个序列化文件只dump一次,每次load一个序列化文件!!!

time模块

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

datetime模块

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

random模块,取随机数的

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

os模块,怼操作系统用的

import os

#os模块用于操作操作系统

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

shutil文件操作用的

import shutil #用于文件操作。

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

sys模块 python环境用的

import sys

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

hashlib用来加密的

import hashlib,hmac,datetime

pwd="welkjasf199725" #这是输入的密码

odtm=datetime.datetime.now()
for i in range(1000000):
mmm=hashlib.sha256() #使用sha256算法,还有其他很多算法
mmm.update(str(i).encode("utf-8")) #update就是给mmm算法实例赋值
mmm.hexdigest() #进行加密计算
ndtm=datetime.datetime.now()
print(ndtm-odtm)

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

import logging

# #日志级别 先后顺序:
# logging.debug("dddddddddddd")
# logging.info("kkkkkkkkkkkk")
# logging.warning("gogogogogogo")
# logging.error("eeeeeeeeeeeeee")
# logging.critical("stopstopstop")
#
# #输出日志到文件
# logging.basicConfig(filename="mode_error.log",
# level=logging.DEBUG,
# datefmt="%Y-%m-%d %H-%M-%S",
# format="%(asctime)s-[%(levelname)s]:%(filename)s - %(module)s - %(funcName)s,on:%(lineno)d %(message)s")
# logging.debug("dddddddddddd")
# logging.info("kkkkkkkkkkkk")
# logging.warning("gogogogogogo")
# logging.error("eeeeeeeeeeeeee")
# logging.critical("stopstopstop") #创建一个logger对象
logger=logging.getLogger("TEST_LOGGER")
logger.setLevel(logging.DEBUG) #设定一个屏幕handler(console handler) 并且设定一个级别
ch=logging.StreamHandler()
ch.setLevel(logging.WARNING) #设定一个文件handler(file handler )并且设定一个级别
fh=logging.FileHandler("mode_error.log",encoding="utf-8")
fh.setLevel(logging.ERROR) #定义日志格式:
fh_formatter=logging.Formatter("%(asctime)s-[%(levelname)s]:%(filename)s - %(module)s - %(funcName)s,on:%(lineno)d %(message)s")
ch_formatter=logging.Formatter("%(asctime)s-[%(levelname)s]:on:%(lineno)d %(message)s") #关联日志格式
fh.setFormatter(fh_formatter)
ch.setFormatter(ch_formatter) #把 各个handler加入到logger
logger.addHandler(fh)
logger.addHandler(ch) #开始使用日志
logger.error("loger loger loger")
logger.warning("dddddddddddddddddddddddddddddddddddddd")

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

import re

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

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. [POJ1741] Tree【树分治 点分治】

    传送门:http://poj.org/problem?id=1741 写的第一道树分治题,撒花纪念~ 对于每一对点对(i, j),它有三种情况: ① 其中一个是根节点.这种情况比较简单,直接加上就好了 ...

  2. 转 【TTS】AIX平台数据库迁移到Linux--基于RMAN(真实环境)

    [TTS]AIX平台数据库迁移到Linux--基于RMAN(真实环境) http://www.cnblogs.com/lhrbest/articles/5186933.html 各位技术爱好者,看完本 ...

  3. sqlServer备份和还原语句

    数据库备份语句和还原语句: --完整备份 Backup Database xxx To disk=’G:\Backup\xxx.bak’ --查看物理路径 restore filelistonly f ...

  4. [Luogu2901][USACO08MAR]牛慢跑Cow Jogging Astar K短路

    题目链接:https://daniu.luogu.org/problem/show?pid=2901 Astar的方程$f(n)=g(n)+h(n)$,在这道题中我们可以反向最短路处理出$h(n)$的 ...

  5. vue组件中—bus总线事件回调函数多次执行的问题

    在利用vue组件进行事件监听时发现,如果对N个vue组件实例的bus总线绑定同一事件的回调函数,触发任意组件的对应事件,回调函数至少会被执行N次,这是为什么呢? 为此,调研了普通对象的事件绑定和触发实 ...

  6. scala如何在任意方法中打印当前线程栈信息(StackTrace)

    1.以wordcount为例 package org.apache.spark.examples import org.apache.spark.{SparkConf, SparkContext} / ...

  7. 10.3 Implementing pointers and objects and 10.4 Representing rooted trees

    Algorithms 10.3 Implementing pointers and  objects  and 10.4 Representing rooted trees Allocating an ...

  8. iOS中的蓝牙

    iOS中的蓝牙 概述 iOS中提供了4个框架用于实现蓝牙连接 1.GameKit.framework(用法简单) 只能用于iOS设备之间的同个应用内连接,多用于游戏(eg.拳皇,棋牌类),从iOS7开 ...

  9. ansys中的.full文件中如何看刚度矩阵和质量矩阵(转)

    http://fffff-2001.blog.163.com/blog/static/15507529200722492917460 Q:请问ansys中的.full文件中如何看刚度矩阵和质量矩阵? ...

  10. (转)Spring使用AspectJ进行AOP的开发:注解方式

    http://blog.csdn.net/yerenyuan_pku/article/details/69790950 Spring使用AspectJ进行AOP的开发:注解方式 之前我已讲过Sprin ...