内置模块

1.时间模块

第一:time.time()是时间戳

时间戳默认是 从1970年到现在过的秒数,是一个很长的数值
它可以做时间的计算以及显示

第二:localtime()

获取当前的时间,按元组来存放

  1. import time
  2. t=time.localtime()
  3. print(t.tm_year) #打印当前年份
  4. print(t.tm_wday) #打印当前一周的第几天

第三:世界标准时间

print(time.gmtime)  #打印英国的东区西区时间分界线的时间

第四:可以将结构化时间转换为时间戳好进行计算

  1. t=time.localtime() #获取一个结构化时间(当前时间)
  2. print(time.mktime()) mktime用于结构化时间转换成时间戳

第五:将结构化时间转换成字符串时间

  1. import time
  2. print(time.strftime('%Y-%m-%d %X,time.localtime())) #Y是年,m是月,d是天,X是时分秒

第六:将字符串时间转换为结构化时间

以下程序将字符串的2016年12月23日17时50分36秒转换为结构化时间

  1. import time
  2. print(time.strptime('2016:12:23:17:50:36','%Y:%m:%d:%X'))

第七:系统自带的格式化时间函数,固定格式

  1. import time
  2. print(time.asctime())

2.random模块

第一:random.random是0-1之间的浮点数

  1. import random
  2. print(random.random())
  3. print(random.random())
  4. print(random.random())

第二:random.randint是取闭区间内的整数

  1. import random
  2. print(random.randint(1,3))

第三:randrange是取某个区间内的随机整数,不包含右端

  1. import random
  2. print(random.randrange(1,3))
  3. print(random.randrange(1,3))

第四:choice随机某些自选的数

  1. import random
  2. print(random.choice([12,33,41]))
  3. print(random.choice([12,33,41]))

第五:随机在区间内选取两个

  1. import random
  2. print(random.sample([12,33,41],2))
  3. print(random.sample([12,33,41],2))

第六:随机取区间范围的浮点型

  1. import random
  2. print(random.uniform(1,2))
  3. print(random.uniform(1,2))

第七:把次序打乱

  1. import random
  2. ret=[1,2,3,4,5]
  3. random.shuffle(ret)
  4. print(ret)

第八,综合实例:验证码程序

  1. import random
  2. def v_code():
  3. ret=''
  4. for i in range(5):
  5. num=random.randint(0,9) #num为0-9里面随机抽出一个
  6. alf=random.choice(['a','b','c','d','e','f','g','h']) #alf为a-h里面随机抽出一个
  7. s=str(random.choice([num,alf])) #将随机的一个数字和一个字母放进一个列表然后choice选出其中一个
  8. ret=s+ret #进行拼接
  9. return ret
  10. print(v_code())

3.os模块

第一:os.getcwd用于获取工作目录

  1. import os
  2. print(os.getcwd())
  3. #如果要找当前的py文件的路径用__file__

第二:os.chdir('文件夹名称')用于改变工作目录文件夹,往里面输字符可以工作目

录变成那个字符的文件夹

os.chdir('..')用于改变工作目录文件夹,往里面输..可以工作目
录变成那个上一级的文件夹

  1. import os
  2. print(os.getcwd())
  3. os.chdir('module')
  4. print(os.getcwd())
  5. os.chdir('..')
  6. print(os.getcwd())

第三:os.makedirs()用于在当前工作目录生成文件夹

  1. import os
  2. print(os.getcwd())
  3. os.chdir('module')
  4. print(os.getcwd())
  5. os.chdir('..')
  6. print(os.getcwd())
  7. os.makedirs('abcd/abc') #可以在工作目录下生成多个文件夹,这句话生成了abcd,然后在abcd
  8. print(os.getcwd()) #里面又生成了一个abc

第四:removedirs用于在当前工作目录删除文件夹

  1. import os
  2. print(os.getcwd())
  3. os.chdir('module')
  4. print(os.getcwd())
  5. os.chdir('..')
  6. print(os.getcwd())
  7. os.removedirs('abcd/abc')
  8. print(os.getcwd())

第五:打印工作目录下面的所有文件并且放进列表os.listdir()

  1. import os
  2. print(os.listdir())

第六:os.rename()给工作路径的文件改名字

第七: os.stat('需要查询的py文件')给出要查询的py文件的一系列数值

  1. import os
  2. print(os.stat('bin.py'))
  3. #注意里面的st_size是文件的字节大小,st_atime是用户上一次的访问时间
  4. #st_mtime是最近一次的修改时间 #st_ctime是创建时间

第八:输出当前操作系统使用的行终止符

  1. import os
  2. print(os.linesep)

第九:输出当前操作系统分割文件路径的字符串

  1. import os
  2. print(os.pathsep)

第十:split把path分割成路径和名字

  1. import os
  2. crpath=__file__ #获取py的路径,然后分割成文件名和它的路径放进元组
  3. print(os.path.split(crpath))

第十一:dirname用于取文件前面的路径,basename用于取文件名

  1. import os
  2. crpath=__file__ #获取当前py的路径
  3. print(os.path.dirname(crpath))
  4. print(os.path.basename(crpath))

第十二:exists()

os.path.exists(path)如果path存在,返回true,不存在返回false

第十三:isabs判断绝对路径

os.path.isabs(path)判断path是不是绝对路径,是的话返回true

第十四:路径拼接join

  1. import os
  2. crpath=__file__ #获取当前py的路径
  3. a=os.path.dirname(crpath)
  4. b=os.path.basename(crpath)
  5. print(os.path.join(a,b))

第十五:返回指向文件或者目录的最后访问时间getatime

返回指向文件或者目录的最后修改时间getmtime

第十六:以下可以使用os获取上一层的上一层的地址

base_dir=os.path.dirname(os.path.dirname(__file__))

4.sys模块

第一:sys模块可以修改环境变量(临时性,不会永久修改)

  1. import sys
  2. sys.path.append('里面填写环境变量绝对地址路径')

第二:直接中止退出程序sys.exit(0)

  1. import sys
  2. print('asad')
  3. sys.exit(0)
  4. print('a3213d')

第三:获取当前的环境变量的位置sys.path

  1. import sys
  2. print(sys.path)

第四,获取当前py文件的路径并且放进列表中

  1. import sys
  2. print(sys.argv)

第五:利用sys制作进度条,需要flash刷新缓存,不然会一次性

把#全部显示出来

  1. import time
  2. import sys
  3. for i in range(10):
  4. abs=sys.stdout.write('#')
  5. time.sleep(0.2)
  6. sys.stdout.flush()

5.json模块(序列化),主要用于和其他语言的数据交换,比如c,php之类的

转换成字符串好传入文件内传输

  1. import json
  2. dic={'name':'alex'}
  3. data=json.dumps(dic)
  4. print(data) #json.fumps用于转换字符串,且只有" 没有'
  5. print(type(data))

第二:将字符串回归成原来的格式json.loads

用于字符串转换字典,字符串转列表,字符串转数字
字典转换字符串,列表转字符串,数字转字符串

  1. import json
  2. dic='[1,2,3]'
  3. dic1='{"ad":"ASd"}'
  4. dic2='2'
  5. data1=json.loads(dic)
  6. data2=json.loads(dic1)
  7. data3=json.loads(dic2)
  8. print(data1)
  9. print(type(data1))
  10. print(data2)
  11. print(type(data2))
  12. print(data3)
  13. print(type(data3))

6.pickle是转换成字节(序列化),序列化是吧数据变成可传输的

dumps用于转换成字节,loads用于转换回原来的形式

  1. import pickle
  2. dic='[1,2,3]'
  3. dic1='{"ad":"ASd"}'
  4. dic2='2'
  5. data1=pickle.dumps(dic)
  6. data2=pickle.dumps(dic1)
  7. data3=pickle.dumps(dic2)
  8. print(data1)
  9. print(type(data1))
  10. print(data2)
  11. print(type(data2))
  12. print(data3)
  13. print(type(data3))
  14. fback=pickle.loads(data1)
  15. print(fback)

7.shelve模块,shelve把字典写入文件,给字典专属名字

  1. import shelve
  2. f.shelve.open(r'shelvel')
  3. f['stu1_info']={'name':'alex','age':'18'} #利用shelve写入字典,给字典专属名字
  4. f['stu2_info']={'name':'abir','age':'182'}
  5. f['school_info']={'name':'sdadsa'}
  6. print(f.get('stu1_info')['age']) #利用那个专属的名字来调用字典内的值

8.xml

xml_lesson内容:
<data>
    <country name='a'>
        <gdp>123</gdp>
    </country>
    <country name='b'>
        <gdp>1sda23</gdp>
    </country>
    <country name='c'>
        <gdp>13</gdp>
    </country>
</data>

程序

  1. import xml.etree.ElementTree as ET
  2. tree = ET.parse('xml1') #读取xmllesson里面的内容放在tree里面
  3. root = tree.getroot()#获取tree里面的根节点,也就是那个xml里的根data
  4. print(root.tag) #打印根节点的标签
  5. for i in root:
  6. print (i.tag) #打印内部节点i的标签
  7. print(i.attrib) #打印节点里面的属性并放进字典
  8. for j in i:
  9. print(j.attrib) #因为gdp没有属性只有值,所以打印时为空
  10. print(j.text) #用text显示中间的值
  11. #以下是删除程序
  12. for country in root.findall('country'):
  13. checkgdp=(country.find('gdp').text)
  14. if checkgdp=='13':
  15. root.remove(country)
  16. tree.write('xml1change1.xml')
  17. #以下是修改程序
  18. for node in root.iter('gdp'): #取出根内的gdp标签里面的数据
  19. gdpget=str(node.text) #取gdp里面的值,并且转换为字符串格式
  20. node.text='abcd'
  21. tree.write('xml1change.xml')

Py-时间,随机,os,sys,jsonpickle序列化,shelve,xml模块的更多相关文章

  1. Python常用模块(logging&re&时间&random&os&sys&shutil&序列化&configparser&&hashlib)

    一. logging(日志模块) 二 .re模块 三. 时间模块 四. random模块 五. os模块 六. sys模块 七. shutil模块 八. 序列化模块(json&pickle&a ...

  2. 学到了林海峰,武沛齐讲的Day22-完 os sys json pickle shelve XML re

    __ file__    =====   文件路径 os.path.dirname( 路径 )=======到上一层目录 os sys

  3. 常用模块之 os,json,shelve,xml模块

    os 即操作系统 在 os 中提供了很多关于文件,文件夹,路径处理的函数 这是我们学习的重点 os.path 是os模块下专门用于处理路径相关的 python是一门跨平台语言,由于每个平台路径规则不同 ...

  4. Python day19 模块介绍3(sys,json,pickle,shelve,xml)

    1.sys模块 import sys sys.path()#打印系统path sys.version()#解释程序版本信息 sys.platform()#系统平台 sys.exit(0)#退出程序 c ...

  5. python模块--json \ pickle \ shelve \ XML模块

    一.json模块 之前学习过的eval内置方法可以将一个字符串转成一个python对象,不过eval方法时有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候,e ...

  6. time,datetime,random,os,sys,hashlib,logging,configparser,re模块

    #-----time模块----- print(help(time)) #打印time帮助文档 print(time.time()) #打印时间戳 1569824501.6265268 time.sl ...

  7. 模块random+os+sys+json+subprocess

    模块random+os+sys+json+subprocess 1. random 模块   (产生一个随机值) import random 1 # 随机小数 2 print(random.rando ...

  8. python全栈开发day17-常用模块collections,random,time,os,sys,序列化(json pickle shelve)

    1.昨日内容回顾 1.正则表达式     # 正则表达式 —— str           # 检测字符串是否符合要求     # 从大段的文字中找到符合要求的内容 1).元字符 #. # 匹配除换行 ...

  9. python基础之 序列化,os,sys,random,hashlib

    1.序列化 定义: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然 ...

随机推荐

  1. Spring Cloud Alibaba基础教程-Nacos(一)

    2019快结束,也有很久没写博客了,今天我们来谈谈Nacos,如果对您有帮助,麻烦左上角点个关注 ,谢谢 ! 嘻嘻 今天先写第一篇 文章目录 为什么要使用Nacos Eureka 闭源 Nacos的优 ...

  2. Redisearch实现的全文检索功能服务

    "检索"是很多产品中无法绕开的一个功能模块,当数据量小的时候可以使用模糊查询等操作凑合一下,但是当面临海量数据和高并发的时候,业界常用 elasticsearch 和 lucene ...

  3. js中获取监听键盘事件

    <script type="text/javascript" language=JavaScript charset="UTF-8"> docume ...

  4. matplotlib学习日记(三)------简单统计图

    (一)函数bar()---------绘制柱状图 import matplotlib as mpl import matplotlib.pyplot as plt mpl.rcParams[" ...

  5. Gitlab + Jenkins 构建,发布一个基于Go的Gin测试项目

    部署Go项目简介 对于golang的发布,之前一直没有一套规范的发布流程,来看看之前发布流程: 方案一 • 开发者本地环境需要将环境变量文件改为正式环境配置 • 编译成可执行文件 • 发送给运维 • ...

  6. CentOS7的防火墙以及selinux介绍/安装telnet命令/安装netstat与ifconfig命令

    简介:firewall防火墙的使用 防火墙:主要用户信息安全防护,主要有软件防火墙和硬件防火墙.firewalld防火墙是软件防火墙,在centos7 之前默认采用的防火墙是iptables,而在ce ...

  7. pathon基础2

    支持不同文件,不同sheet页 import xlrdimport xlwtimport osimport time; #往日志文件中追加内容函数def writeLogfile(filename,c ...

  8. 支付业务优化else if 代码

    背景 最近在做项目的时候,需要接入支付.由于接入第三方支付而且还不知止一家,需要接入很多家.比如说支付宝.微信.富友支付等.每家支付都一个回调.现如今的代码,根据不同的第三方支付一大堆else if判 ...

  9. 别再费劲去找后台的前端框架了,2021 年就用 Fantastic-admin 吧

    前言 你知道光是基于 Vue 的后台框架在 Github 上有多少个仓库么? 如果你搜索 vue admin 会得到 13120 个仓库,如果用 vue 后台 会得到 7596 个仓库,如果把两者结合 ...

  10. vue-cli Cannot find module 'less'

    首先,今天下午对OneloT项目进行试图修改,我向在在线的时候先将接口中的数据缓存到本地,通过文件写入的方式,但是没有成功,捣鼓了一会.重新启动浏览器,发现命令行报错,error cannot fin ...