1.时间模块

  在Python中通常有三种表示时间的方式,分别是时间戳、元组、格式化的时间字符串。

时间模块的常用方法

time.sleep()
#指定延迟时间
time.time()
#当前时间的时间戳

python中表示时间的几种格式

import time
#导入时间模块
time.time()
#获取时间戳
print(time.strftime("%Y-%M-%d %H-%M-%S"))
#时间字符串
time.localtime()
#时间元组 将一个时间戳转化为当前时区struct_time

小结:时间戳是计算机能够识别的时间;时间字符串是人能够看懂的时间;元组则是用来操作时间的

几种格式之间的转化:

#时间戳====>结构化时间
#time.gmtime(时间戳)
#time.localtime(时间戳) 当地时间 # print(time.gmtime(1500000000)
time.struct_time(tm_year=2017, tm_mon=7, tm_mday=14, tm_hour=2, tm_min=40, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=0) print(time.localtime(1500000000))
time.struct_time(tm_year=2017, tm_mon=7, tm_mday=14, tm_hour=10, tm_min=40, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=0) #结构化时间=====>时间戳
time.mktime()

时间戳与结构化时间之间的转化

#结构化时间 --> %a %b %d %H:%M:%S %Y串
#time.asctime(结构化时间) 如果不传参数,直接返回当前时间的格式化串
time.asctime(time.localtime(1500000000))
'Fri Jul 14 10:40:00 2017'
time.asctime()
'Mon Jul 24 15:18:33 2017' #%a %d %d %H:%M:%S %Y串 --> 结构化时间
#time.ctime(时间戳) 如果不传参数,直接返回当前时间的格式化串
time.ctime()
'Mon Jul 24 15:19:07 2017'
time.ctime(1500000000)
'Fri Jul 14 10:40:00 2017'
#结构化时间===>字符串时间
time.strftime("%Y-%M-%d",time.localtime(1500000000))
#2017-40-14 #字符串时间=====>结构化时间
print(time.strptime("2017-9-8","%Y-%m-%d"))
#time.struct_time(tm_year=2017, tm_mon=9, tm_mday=8, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=251, tm_isdst=-1

结构化时间与字符串时间之间的转化

2.random模块

#random模块
import random
#随机小数
random.random()
random.uniform(1,4)
#随机整数
random.randint(1,5)
#随机选择一个返回
re=random.choice([1,'',[4,5]]) #返回1、23、[4,5]
print(re)
#随机选择多个返回
ret=random.sample([23,[1,2,3]],2)
print(ret)
#打乱列表的顺序
num=[1,2,3,4,5]
random.shuffle(num)

random模块

练习:生成随机验证码

name_l=list(range(10))
name_tp_1=list(map(str,name_l))
alph=[]
for i in range(65,91):
alph_1=chr(i)
alph.append(alph_1)
name_tp_1.extend(alph)
list=[]
for i in range(4):
list.append(random.choice(name_tp_1))
print(''.join(list))

随机生成验证码

3.sys模块

 sys模块是与python解释器交互的一个接口

import sys
sys.argv
sys.exit() #退出程序
sys.version #获取python解释器版本信息
sys.maxsize #最大的int值
sys.path #返回模块的搜索路径
sys.platform #返回操作平台

sys模块

4.序列化模块

将原本的字典、列表等内容转换成一个字符串的过程叫做序列

 json模块与pickle模块

首先谈谈json模块,用于字符串与python数据类型之间的转换。

json模块提供了四个功能:dumps、dump、loads、load

import json
dic = {'k1':'v1','k2':'v2','k3':'v3'}
str_dic=json.dumps(dic) #序列化
print(str_dic) #将一个字典转换成一个字符串
#注意,json转换完的字符串类型的字典中的字符串是由""表示的 dic=json.load(str_dic) #反序列化
#将一个字符串转换成一个字典
#注意,要用json的loads功能处理的字符串类型的字典中的字符串必须由""表示

dumps和loads

f=open('json_file','w')
dic1={'k1':'v1','k2':'v2','k3':'v3'}
json.dump(dic1,f)
f.close()
#dump接收一个文件句柄,直接将字典转化成json字符串写入文件 f=open('json_file')
dic2=json.load(f)
f.close()
print(dic2)
#load接收文件句柄,直接将文件中的json字符串转化成数据结构返回

load和dump

pickle模块,用于python特有的类型 和 python的数据类型间进行转换

pickle模块提供了四个功能:dumps、dump(序列化,存)、loads(反序列化,读)、load  (不仅可以序列化字典,列表...可以把python中任意的数据类型序列化

import pickle
dic={'k1':'v1','k2':'v2','k3':'v3'}
str_dic=pickle.dumps(dic)
print(str_dic)
#一串二进制
dic2=pickle.loads(str_dic)
print(dic2)
#返回字典
import time
struc_time=time.localtime(1000000000)
print(struc_time)
f=open('pickle_file','wb')
pickle.dump(struc_time,f)
f.close() f=open('pickle_file','rb')
struc_time2=pickle.load(f)
print(struc_time.tm_year)

pickle模块

shelve模块,提供给我们一个open方法,用字典进行访问,使用起来和字典类似
import shelve
f=shelve.open('shelve_file')
f['key']={'int':10,'float':2.1,'string':'egon'}
f.close()
#写入文件 f1=shelve.open('shelve_file')
exist=f1['key']
f.close()
print(exist)
#将文件根据key值取出来

shelve模块

5.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.path
os.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的大小

i习题:

生成随机验证码

def myrandom():
new_num_l = list(map(str,range(10)))
alph_l = [chr(i) for i in range(65,91)] #列表推导式
new_num_l.extend(alph_l)
ret_l = [random.choice(new_num_l) for i in range(4)]
return ''.join(ret_l)
print(myrandom())

文艺青年版

python之其他模块的用法的更多相关文章

  1. python中logging模块的用法

    很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,loggin ...

  2. Python的logging模块基本用法

    Python 的 logging 模块的简单用法 在服务器部署时,往往都是在后台运行.当程序发生特定的错误时,我希望能够在日志中查询.因此这里熟悉以下 logging 模块的用法. logging 模 ...

  3. python之logging模块简单用法

    前言: python引入logging模块,用来记录自己想要的信息.print也可以输入日志,但是logging相对print来说更好控制输出在哪个地方.怎么输出以及控制消息级别来过滤掉那些不需要的信 ...

  4. python中ConfigParse模块的用法

    ConfigParser 是Python自带的模块, 用来读写配置文件, 用法及其简单. 配置文件的格式是: [...]包含的叫section section 下有option=value这样的键值 ...

  5. (数据科学学习手札53)Python中tqdm模块的用法

    一.简介 tqdm是Python中专门用于进度条美化的模块,通过在非while的循环体内嵌入tqdm,可以得到一个能更好展现程序运行过程的提示进度条,本文就将针对tqdm的基本用法进行介绍. 二.基本 ...

  6. python 导入json模块的用法

    json用于字符串,和 python数据类型间进行转换,json模块有四个功能,dumps,dump,loads,load. json 用法 json.dumps 将数据通过特殊的形式转换为所有程序语 ...

  7. Python之request模块-基础用法

    Request模块参考中文手册:https://requests.readthedocs.io/zh_CN/latest/ Request模块 1.查看pip已装包(模块)的安装信息(模块的路径.版本 ...

  8. Python中random模块的用法案例

    1 import random # 调用random模块 2 3 a = random.random() # 随机从0-1之间抽取一个小数 4 print(a) 5 6 a = random.rand ...

  9. python中time模块的用法

    import time tick = time.time() # 返回从12:00am, January 1, 1970(epoch) 开始的记录的当前操作系统时间 present = time.lo ...

随机推荐

  1. [51nod1119]机器人走方格V2

    解题关键: 1.此题用dp的方法可以看出,dp矩阵为杨辉三角,通过总结,可以得出 答案的解为$C_{n + m - 2}^{n - 1}$ 2.此题可用组合数学的思想考虑,总的步数一共有$n+m-2$ ...

  2. 在命令行上启动genymotion虚拟机

    自从有了genymotion,多机联调就解放了,一台电脑运行两个genymotion虚拟机毫无压力,不过也看用的是哪种os image,之前我以为google自己的Nexus应该最适应,哪知道开起来比 ...

  3. 【NLP】中文分词:原理及分词算法

    一.中文分词 词是最小的能够独立活动的有意义的语言成分,英文单词之间是以空格作为自然分界符的,而汉语是以字为基本的书写单位,词语之间没有明显的区分标记,因此,中文词语分析是中文信息处理的基础与关键. ...

  4. Struts2学习第三课 访问Web资源

    1.什么是WEB资源? HttpServletRequest,HttpSession,ServletContext等原生的Servlet API. 2.为什么访问WEB资源? B/S的应用的Contr ...

  5. jquery ajax + struts2用例

    ajax var url = '/itsm/contract/contract!deleteShopItemById.action'; var shopItemId= selectRows[x].da ...

  6. CocoaPods常用操作命令

    查看镜像: gem sources -l 删除镜像 gem sources --remove https://rubygems.org/ 添加镜像 gem sources -a https://gem ...

  7. python 学习笔记12(事件驱动、IO多路复用、异步IO)

    阻塞IO和非阻塞IO.同步IO和异步IO的区别 讨论背景:Linux环境下的network IO. 1.先决条件(几个重要概念) 1.1.用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32 ...

  8. MATLAB实现插值和拟合

    插值问题在应用领域中,由有限个已知数据点,构造一个解析表达式,由此计算数据点之间的函数值,称之为插值.实例:海底探测问题某公司用声纳对海底进行测试,在5×5海里的坐标点上测得海底深度的值,希望通过这些 ...

  9. 如何使用ros命令行显示图片

    rosrun image_view image_view image:=[TOPIC] 注意:每次只能显示一个UI.不能在一条命令中订阅多个节点.

  10. 51nod1119(除法取模/费马小定理求组合数)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1119 题意:中文题诶- 思路:这题数据比较大直接暴力肯定是不 ...