Py-时间,随机,os,sys,jsonpickle序列化,shelve,xml模块

内置模块

1.时间模块

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

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

第二:localtime()

获取当前的时间,按元组来存放
import time
t=time.localtime()
print(t.tm_year)  #打印当前年份
print(t.tm_wday)  #打印当前一周的第几天

 

第三:世界标准时间

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

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

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

 

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

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

 

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

以下程序将字符串的2016年12月23日17时50分36秒转换为结构化时间
import time
print(time.strptime('2016:12:23:17:50:36','%Y:%m:%d:%X'))

 

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

import time
print(time.asctime())

 

2.random模块

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

import random
print(random.random())
print(random.random())
print(random.random())

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

第七:把次序打乱

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

 

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

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

 

3.os模块

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

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

 

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

录变成那个字符的文件夹

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

 

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

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

 

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

import os
print(os.getcwd())
os.chdir('module')
print(os.getcwd())
os.chdir('..')
print(os.getcwd())
os.removedirs('abcd/abc')
print(os.getcwd()) 

 

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

import os
print(os.listdir())

 

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

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

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

 

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

import os
print(os.linesep)

 

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

import os
print(os.pathsep)

 

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

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

 

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

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

 

第十二:exists()

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

第十三:isabs判断绝对路径

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

第十四:路径拼接join

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

 

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

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

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

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

4.sys模块

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

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

 

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

import sys
print('asad')
sys.exit(0)
print('a3213d')

 

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

import sys
print(sys.path)

 

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

import sys
print(sys.argv)

 

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

把#全部显示出来

import time
import sys
for i in range(10):
    abs=sys.stdout.write('#')
    time.sleep(0.2)
    sys.stdout.flush()

 

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

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

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

 

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

用于字符串转换字典,字符串转列表,字符串转数字
字典转换字符串,列表转字符串,数字转字符串
import json
dic='[1,2,3]'
dic1='{"ad":"ASd"}'
dic2='2'
data1=json.loads(dic)
data2=json.loads(dic1)
data3=json.loads(dic2)
print(data1)
print(type(data1))
print(data2)
print(type(data2))
print(data3)
print(type(data3))

 

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

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

import pickle
dic='[1,2,3]'
dic1='{"ad":"ASd"}'
dic2='2'
data1=pickle.dumps(dic)
data2=pickle.dumps(dic1)
data3=pickle.dumps(dic2)
print(data1)
print(type(data1))
print(data2)
print(type(data2))
print(data3)
print(type(data3))
fback=pickle.loads(data1)
print(fback)

 

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

import shelve
f.shelve.open(r'shelvel')
f['stu1_info']={'name':'alex','age':'18'} #利用shelve写入字典,给字典专属名字
f['stu2_info']={'name':'abir','age':'182'}
f['school_info']={'name':'sdadsa'}
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>

程序

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

 

posted @ 2020-09-29 11:19  克莱比-Kirby  阅读(154)  评论(0)    收藏  举报