python充值模块_python模块补充

collections模块

collections模块namedtupe方法。又称具名元组。

from collections importnamedtuple

point= namedtuple('空间坐标', 'x y z') #x y z可以写成列表形式,元组等可迭代对象

res = point(3, 4, 5)print(res) #空间坐标(x=3, y=4, z=5)

print(point(3, 4, 5).x) #提取x 结果 3

print(point(3, 4, 5).y) #提取y 结果 4

print(point(3, 4, 5).z) #提取z 结果 5

队列queue

#队列先进先出

importqueue

q=queue.Queue()

q.put('1') #先进1

q.put('2') #在进2

q.put('3') #最后进3

print(q.get()) #结果 1

print(q.get()) #结果2

print(q.get()) #结果3

# 注使用queue方法时,取值借助get函数。当值取完后仍取值,程序会原地等待,直到拿到值为止

双端序列deque。从左右两边都可添加值进去,但仍然按照队列规则,先进先出。

from collections importdeque

q= deque(['x','y','z'])

q.append(1)

q.appendleft('a')print(q) #deque(['a', 'x', 'y', 'z', 1])

print(q.popleft()) #结果 a

print(q.pop()) #1

有序字典OrdereDict。

#有序字典在其中添加键值,会在后面追加,这个排序位置不变。

from collections importOrderedDict

dict_queue= OrderedDict([(1,'A'), (2,'B')])

dict_queue['a'] = 1dict_queue['b'] = 2

print(dict_queue)

默认值字典defaultdict

from collections importdefaultdict

my_dict= defaultdict(list) #设置默认值位为列表

print(my_dict['a']) #[]

print(my_dict) #结果defaultdict(, {'a': []})

计数字典counter

from collections importCounter

s= 'dadfsfgjhafgbkafha's1=Counter(s)print(s1) #结果 Counter({'a': 4, 'f': 4, 'd': 2, 'g': 2, 'h': 2, 's': 1, 'j': 1, 'b': 1, 'k': 1})

时间模块(time/datatime)

time模块有三种表现形式。

1 时间戳。显示现在距离1970年1月1日零时零分零秒

importtimeprint(time.time()) #1563442767.252297

2 格式化时间

importtime

my_time= time.strftime('%Y-%m-%d %H:%M:%S')print(my_time) #结果 2019-07-18 17:42:09

my_time1= time.strftime('%Y-%m-%d %X')print(my_time1) #结果 2019-07-18 17:43:38

my_time2= time.strftime('%Y-%m')print(my_time2) #结果 2019-07

my_time3= time.strftime('%X')print(my_time3) #结果 17:45:32

3 结构化时间

importtime

my_time=time.localtime()print(my_time) #结果 time.struct_time(tm_year=2019, tm_mon=7, tm_mday=18, tm_hour=17, tm_min=48, tm_sec=22, tm_wday=3, tm_yday=199, tm_isdst=0)

三种形式之间的转化

'''三种形式的互选转换'''

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

importtime

my_1time= time.time() #时间戳

my_3time = time.localtime(my_1time) #等价于my_3time1 = time.gmtime(my_1time) 转结构化时间

print(my_3time) #结果 time.struct_time(tm_year=2019, tm_mon=7, tm_mday=18, tm_hour=18, tm_min=19, tm_sec=21, tm_wday=3, tm_yday=199, tm_isdst=0)

my_1time1 = time.mktime(my_3time) #结构化时间转时间戳

print(my_1time1) #结果 1563445161.0

#结构化时间于格式化时间的转化

my_2time = time.strftime('%Y-%m-%d') #格式化时间

my_2time1 = time.strftime('%Y-%m-%d %X', time.localtime(1563445161)) #转格式化时间

print(my_2time1) #结果 2019-07-18 18:19:21

my_3time = time.strptime('2019-07-18',my_2time) #转结构化时间(my_2time中格式化时间到天,否则报错)

print(my_3time)

datetime时间模块

importdatetime

my_time= datetime.date(2019,6,11) #自定义化时间

print(my_time) #结果 2019-06-11

my_time1 = datetime.date.today() #当前时间

print(my_time1) #结果2019-07-18

my_time = datetime.datetime.today() #精确时间获取

print(my_time) #结果 2019-07-18 18:59:00.905379

#获取年月日

print(my_time.year) #结果 2019

print(my_time.month) #结果 7

print(my_time.day) #结果 18

print(my_time.weekday()) #结果 3

print(my_time.isoweekday()) #结果 4

#datetime运算操作

importdatetime

now_day= datetime.date.today() #日期对象

last_day = datetime.timedelta(days=7) #timedate对象

rec= now_day + last_day #日期对象 + timelate对象

print(rec) #日期对象 :结果2019-07-25

rec1 = rec - now_day #日期对象 - 日期对象

print(rec1) #timedate对象 结果 7 days, 0:00:00

随机模块random

#随机数获取

importrandomprint(random.random()) #获取0到1之间的数 结果:0.21267928084158305

print(random.uniform(1, 10)) #获取1到10之间的数 结果:6.744952496036854

print(random.randint(1, 10)) #获取1(包括1)到10(包括10)之间的整数 结果:3

print(random.choice('123')) #获取字符串中的一个元素。(可迭代对象) 结果:3

print(random.sample([1,'23',3,[4,5]],2)) #获取字符串中的两个元素。(可迭代对象) 结果:['23', [4, 5]]

sys模块

sys模块和python解释器紧相关

sys.argv 命令行参数List,第一个元素是程序本身路径

sys.exit(n) 退出程序,正常退出时exit(0),错误退出sys.exit(1)

sys.version 获取Python解释程序的版本信息

sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值

sys.platform 返回操作系统平台名称

os模块

os模块于操作系统相关

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.system("bash command") 运行shell命令,直接显示

os.popen("bash command).read() 运行shell命令,获取执行结果

os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径

os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd

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的大小

os模块操作

序列化

序列是指字符串,序列化就是将其他数据类型转化成字符串的过程。反序列化就是将字符串转化成其他数据的过程。序列化有两个模块,json模块和pickle模块。两者有些不同,json支持多种编程语言,适用范围广泛,但支持数据类型少。pickle模块支持python所有数据类型,但是对于其他编程语言不支持。

序列化和反序列化json有四种方法。

dumps 与 loads

dump 与 load'''import json

str1 = 'abcdefg'

dict1 = {}

for k, v in enumerate(str1, 1):

dict1[v] = k

str_dict = json.dumps(dict1)

print(str_dict, type(str_dict))

yuan_dict = json.loads(str_dict)

print(yuan_dict, type(yuan_dict))

f = open('json_file','w')

dic = {'k1':'v1','k2':'v2','k3':'v3'}

json.dump(dic,f) #dump方法接收一个文件句柄,直接将字典转换成json字符串写入文件

f.close()

f = open('json_file')

dic2 = json.load(f) #load方法接收一个文件句柄,直接将文件中的json字符串转换成数据结构返回

f.close()

print(type(dic2),dic2)

View Code

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值