python之常用模块(续)
time模块
random模块
sys模块
os模块
序列化模块
time模块
有三种方式表示
在Python中,通常有三种方式来表示时间:时间戳、元组(struct_time)、格式化的时间字符串:
(1)时间戳 通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。
(2)格式化时间字符串:
(3)元组 struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天等)

小结:时间戳是计算机用来计算的;格式化字符串是方便人们看的;元组是用来操作时间的。

# import time
# d=time.time()#时间戳
# print(d)
# print(time.localtime(d))#本地时间以元组的形式
# print(time.gmtime(d))#伦敦时间以元组的形式
# c=time.localtime(d)#以元组的形式来展示本地时间
# h=time.mktime(c)#将元组的形式变成时间戳的形式
# print(h)#打印出来
# h1=time.strftime('%Y-%m-%d %X',c)#将元组的形式变成格式化
# print(h1)
# h3=time.strptime(h1,'%Y-%m-%d %X')#将格式化变成元组
# print(h3)

import time
# ss=time.localtime()#元组
# d=time.asctime(ss)
# print(d)
# ss=time.time()#时间戳
# d=time.ctime(ss)
# print(d)
random模块
import random
#随机小数
# s=random.random()#生成0-1之间的随机数
# print(s)
# s1=random.uniform(1,3)#生成1-3之间的随机数
# print(s1)
# #随机整数
# s=random.randint(1,5)#包括首尾之间的随机整数
# print(s)
# s=random.randrange(1,10,2)#大于等于1且小于10之间的整数
# print(s) # s=random.choice(['1','hehe','dddd'])#随机选择一个返回
# print(s)
# s=random.sample(['dddd','hssihso','jjdjdjjd',['ddd','rrr']],2)#返回2个
# print(s)
# item=[1,3,4,5,6]
# random.shuffle(item)#d打乱顺序
# print(item)
生成随机验证码:(两种方法)
num_list=list(range(10))
new_num_l=list(map(str,num_list))
alph_l=[]
for i in range (65,91):
alph=chr(i)
alph_l.append(alph) new_num_l.extend(alph_l)
ret_l=[]
for i in range(4):
ret_l.append(random.choice(new_num_l))
print(''.join(ret_l)) import random
def v_code():
code = ''
for i in range(5):
num=random.randint(0,9)
alf=chr(random.randint(65,90))
add=random.choice([num,alf])
code="".join([code,str(add)])
return code print(v_code())
sys模块
sys模块是与python解释器交互的一个接口。
sys.argv 命令行参数List,第一个元素是程序本身路径
sys.exit(n) 退出程序,正常退出时exit(0)
sys.version 获取Python解释程序的版本信息
sys.maxint 最大的Int值
sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform 返回操作系统平台名称
import sys
print(sys.argv)#返回所在的路径
print(sys.version)#返回python的版本
print(sys.maxsize)#返回最大的int值
print(sys.path)#返回模块的搜索路径,即环境变量
print(sys.platform)#返回操作系统的平台名字
os模块
os模块是与操作系统交互的一个接口
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd
os.curdir 返回当前目录: ('.')
os.pardir 获取当前目录的父目录字符串名:('..')
os.makedirs('dirname1/dirname2') 可生成多层递归目录
os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname
os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove() 删除一个文件
os.rename("oldname","newname") 重命名文件/目录
os.stat('path/filename') 获取文件/目录信息
os.sep 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
os.linesep 输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
os.pathsep 输出用于分割文件路径的字符串 win下为;,Linux下为:
os.name 输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
os.system("bash command") 运行shell命令,直接显示
os.popen("bash command) 运行shell命令,获取执行结果
os.environ 获取系统环境变量
os.pathos.path.abspath(path) 返回path规范化的绝对路径 os.path.split(path) 将path分割成目录和文件名二元组返回 os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素 os.path.basename(path) 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。
即os.path.split(path)的第二个元素
os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path) 如果path是绝对路径,返回True
os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path) 返回path所指向的文件或者目录的最后访问时间
os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
os.path.getsize(path) 返回path的大小
序列化模块
什么叫序列化——将原本的字典、列表等内容转换成一个字符串的过程就叫做序列化。
序列化的目的
Json模块提供了四个功能:dumps、dump、loads、load
# import json
# dic1={'k1':'v1','k2':'v2','k3':'v3'}
# print(type(dic1))#打印出字典的类型
# str_dic=json.dumps(dic1)#序列化:将一个字典转换成字符串
# print(str_dic,type(str_dic))
# dic_dic=json.loads(str_dic)#反序列化:将一个字符串转换成字典
# print(dic_dic,type(dic_dic))
# import json
# f=open('filename','w')
# dic1={'k1':'v1','k2':'v2','k3':'v3'}
# json.dump(dic1,f)#获得句柄,讲字典以字符串的形式写入
# f.close()
# f=open('filename')
# dic2=json.load(f)#直接将json的字符串形式变成数据结构返回
# f.close()
# print(type(dic2),dic2)
pickle模块
- json,用于字符串 和 python数据类型间进行转换
- pickle,用于python特有的类型 和 python的数据类型间进行转换
pickle模块提供了四个功能:dumps、dump(序列化,存)、loads(反序列化,读)、load (不仅可以序列化字典,列表...可以把python中任意的数据类型序列化)
# import pickle
# k={'k1':'v1','k2':'v2','k3':'v3'}
# d=pickle.dumps(k)#转成二进制的数据
# print(pickle.loads(d))#返回原来的数据结构
这里我们要说明一下,json是一种所有的语言都可以识别的数据结构。
如果我们将一个字典或者序列化成了一个json存在文件里,那么java代码或者js代码也可以拿来用。
但是如果我们用pickle进行序列化,其他语言就不能读懂这是什么了~如果是用python来读写就用pickle模块
shelve 模块
# import shelve
# f=shelve.open('shelve_file')
# f['key']={'k1':'v1','int':10}
# f.close()
# d=f['key']
# f.close()
# print(d)
# import shelve
# f=shelve.open('shelve_file',flag='r')
# print(f['key'])
# f.close()
# f['key']['new values']='this is not before '
# f.close()
但是这个读写是在缓存中的不是在文件的,需要更改默认值
# f2=shelve.open('shelve_file',writeback=True)
# print(f2['key'])
# f2['key']['new values']='this is not before'
# f2.close()
python之常用模块(续)的更多相关文章
- python的常用模块之collections模块
python的常用模块之collections模块 python全栈开发,模块,collections 认识模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文 ...
- python之常用模块
python 常用模块 之 (subprocess模块.logging模块.re模块) python 常用模块 之 (序列化模块.XML模块.configparse模块.hashlib模块) pyth ...
- python之常用模块二(hashlib logging configparser)
摘要:hashlib ***** logging ***** configparser * 一.hashlib模块 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 摘要算法 ...
- Python学习——python的常用模块
模块:用一堆代码实现了某个功能的代码集合,模块是不带 .py 扩展的另外一个 Python 文件的文件名. 一.time & datetime模块 import time import dat ...
- python 之常用模块
一 认识模块 二 常用模块 (1)re模块 (2)collections模块 一 认识模块 (1)什么是模块 (2)模块的导入和使用 (1)模块是:一个模块就是一个包含 ...
- Python之常用模块--collections模块
认识模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的 ...
- Python自动化开发之python的常用模块
python常用模块 模块的种类:模块分为三种,分别是自定义模块:内置标准模块(即标准库):开源模块(第三方). 以下主要研究标准模块即标准库:标准库直接导入即可,不需要安装. 时间模块:time , ...
- python基础----常用模块
一 time模块(时间模块)★★★★ 时间表现形式 在Python中,通常有这三种方式来表示时 ...
- python(五)常用模块学习
版权声明:本文为原创文章,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明. https://blog.csdn.net/fgf00/article/details/52357 ...
- python学习——常用模块
在学习常用模块时我们应该知道模块和包是什么,关于模块和包会单独写一篇随笔,下面先来了解有关在python中的几个常用模块. 一.什么是模块 常见的场景:一个模块就是一个包含了python定义和声明的文 ...
随机推荐
- python学习笔记(三)、字典
字典是一种映射类型的数据类型.辣么什么是映射呢?如果看过<数据结构与算法>这一本书的小伙伴应该有印象(我也只是大学学习过,嘻嘻). 映射:就是将两个集合一 一对应起来,通过集合a的值,集合 ...
- spring_05装配bean
一.前言 <bean id="user1" scope="singleton" init-method="myInit" destro ...
- netty-socketio 概述
netty-socketio 概述 netty-socketio是一个开源的Socket.io服务器端的一个java的实现,它基于Netty框架,可用于服务端推送消息给客户端. 说到服务端推送技术,一 ...
- tomcat端口修改以及jvm启动参数设置
1.端口更改:找到config目录下server.xml文件 如下 <?xml version='1.0' encoding='utf-8'?> <!-- Licensed to t ...
- trivial and nontrivial
Trivial A solution or example that is ridiculously simple and of little interest. Often, solutions o ...
- Aurelia binding
今天介绍一下使用Aurelia binding 模块绑定HTML属性/事件的方式.我们依然使用之前创建的代码例子. Aurelia binding 绑定属性或者方法的通用模式就是 XXX.comman ...
- PHP按符号截取字符串的指定部分
字符串截取在php开发中是比较常用的:而且对于截取的需求也有很多种:就比如说对url链接的操作:http://baijunyao.com/article/12 有时我们想截取最后一个斜杠'/'后面的数 ...
- springboot 格式化返回日期
两种方式: 1,可以在 pojo 类每个属性添加 @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8&qu ...
- Android项目实战(四十八):架构之组件化开发
什么要组件化开发? 看一下普通项目的结构 , 一个项目下有多个Module(左侧图黑体目录),但是只有一个application,0个或多个library(在每个medel下的build.gradle ...
- OpenVDB for Mitsuba
https://github.com/zhoub/mitsuba-vdb