namedtuple

命名元组 ->类似创建了一个类

from collections import namedtuple
p = namedtuple("point", ["x","y"])
p1 = p("bob", "jack")
print(p1)
print(p1.x)
print(p1.y) 运行结果:
point(x='bob', y='jack')
bob
jack

os操作系统交互的模块

 import os
文件和文件夹相关
os.remove('file_name') #删除文件
os.rename('old','new') #重命名文件名
os.mkdir('dir_name') #创建一个空目录
os.rmdir('dir_name') #删除单级空目录
os.makedirs('dir1/dir2/dir3') #创建多级目录
os.removedirs('dir1/dir2/dir3') #删除多级空目录
print(os.listdir('E:\dir1')) #目录下的所有文件以列表显示
print(os.stat('E:/PyPractise/test.py')) #查看文件属性 工作目录相关的
os.system("bash command") #运行shell命令,直接显示
os.popen("bash command).read() #运行shell命令,获取执行结果
ret = os.popen('dir').read()
print(ret)
print(os.getcwd()) #获取当前工作目录
os.chdir("dirname") #改变当前脚本工作目录;相当于shell下cd
os.chdir(r'E:\U')
open('test','w').close()
#创建文件\创建文件夹实际上都是跟着工作目录走的,和你当前执行的这个文件并没有关系 路径相关的 os.path.***
print(os.path.abspath(r'test.txt')) #打印文件绝对路径
E:\Py3Practise\day01\bob.txt
print(os.path.split(r'E:\测试目录\test.txt')) #根据路径和文件名分割成元组
('E:\\测试目录', 'test.txt')
print(os.path.dirname(r'E:\测试目录\test.txt')) #获取文件的目录
E:\测试目录
print(os.path.basename(r'E:\测试目录\test.txt')) #获取文件的文件名
test.txt dir_name = os.path.dirname(__file__) #打印当前路径的全路径目录
open(os.path.join(dir_name,'test'),'w') #在当前目录下创建一个test的文件 print(os.path.exists(r'E:\s17\day17\test1')) #判断路径是否存在(True/False)
print(os.path.isabs(r'E:\Py3Practise')) #如果path是绝对路径,返回True/False
print(os.path.isfile(r'E:\测试目录\test.txt')) #如果path是一个存在的文件,返回True/False
print(os.path.isdir(r'E:\测试目录')) #如果path是一个存在的目录,返回True/False print(os.path.join('E:\\','测试目录','test.txt')) #路径拼接
E:\测试目录\test.txt
print(os.path.getatime(r'E:\测试目录\test.txt')) #返回文件件或目录的最后访问时间
1545831948.7886515
print(os.path.getmtime(r'E:\测试目录\test.txt')) #返回文件或目录的最后修改时间
1545831954.4927616
print(os.path.getsize(r'E:\测试目录\test.txt')) #计算文件大小
3
print(os.path.getsize(r'E:\测试目录')) #计算文件夹属性大小
0 其他属性
print(os.sep) #输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
print(os.linesep) #输出当前平台使用的行终止符,win下为"\r\n",Linux下为"\n"
print(os.pathsep) #输出用于分割文件路径的字符串,win下为;,Linux下为:
结果
\ ;

sys模块

 1 print(sys.version)  # 获取Python解释程序的版本信息
2 print(sys.path) # 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
3 print(sys.platform) # 返回操作系统平台名称
4 sys.exit(0) # 程序正常退出sys.exit()==exit(0)
5 sys.exit(1) # 程序错误退出sys.exit(1)==exit(1)
6 sys.argv # 命令行参数List,第一个元素是程序本身路径
7 一个文件在命令行被执行的时候,py文件后面所有的内容都会成为sys.argv中的一项
8 C:\Users\admin>python3 E:/Py3Practise/day01/test.py bob jack
9 ['E:/Py3Practise/day01/test.py', 'bob', 'jack']
10
11 事例二
12 import sys
13 user = sys.argv[1]
14 passwd = sys.argv[2]
15 if user == 'bob' and passwd == '123':
16 print('登陆成功')
17 else:
18 exit()
19 print('登陆成功之后才能执行的逻辑')
20 结果
21 C:\Users\admin>python3 E:/Py3Practise/day01/test.py bob 123
22 登陆成功
23 登陆成功之后才能执行的逻辑

序列化
把一个对象拍散,叫序列化
把拍散的内容整合回对象,反序列化

pickle模块
把一个对象进行序列化操作
1. dumps()  把对象序列化成字节
2. loads()  把字节反序列化成对象
3. dump()  把对象序列化写入文件
4. load()  把文件中的内容反序列化成对象

 1 import pickle
2 class Elephant:
3 def __init__(self,name,weight,height):
4 self.name = name
5 self.weight = weight
6 self.height = height
7 def play(self):
8 print(f'{self.name}喜欢玩水')
9 e = Elephant('大象','185T','210')
10 e.play()
11 bs = pickle.dumps(e) #序列换化
12 print(bs)
13 dx = pickle.loads(bs) #反序列化
14 dx.play()
15 结果
16 大象喜欢玩水
17 b'\x80\x03c__main__\nElephant\nq\x00)\x81q\x01}q\x02(X\x04\x00\x00\x00nameq\x03X\x06\x00\x00\x00\xe5\xa4\xa7\xe8\xb1\xa1q\x04X\x06\x00\x00\x00weightq\x05X\x04\x00\x00\x00185Tq\x06X\x06\x00\x00\x00heightq\x07X\x03\x00\x00\x00210q\x08ub.'
18 大象喜欢玩水
19
20 事例2
21 class Elephant:
22 def __init__(self,name,weight,height):
23 self.name = name
24 self.weight = weight
25 self.height = height
26 def play(self):
27 print(f'{self.name}喜欢玩水')
28 e1 = Elephant('大象','185T','210')
29 e2 = Elephant('老虎','185T','210')
30 #序列化方法一(写)
31 f = open('测试文件.txt',mode='wb')
32 pickle.dump(e1,f)
33 pickle.dump(e2,f)
34
35 #序列化方法二(写)
36 lst = [e1,e2]
37 pickle.dump(lst,open('测试文件.txt',mode='wb'))
38 #dump这个方法是把对象打散写入到文件,序列化的内容不是给人看的
39
40 #反序列化(读)
41 lst = pickle.load(open('测试文件.txt',mode='rb'))
42 for dx in lst:
43 dx.play()
44 结果
45 大象喜欢玩水
46 老虎喜欢玩水

json模块

 1 import json
2 # 定义字典,稍后写入json文件
3 dic = {'name':'洋洋','age':None,'jobs':False}
4 # 字典转字符
5 s = json.dumps(dic,ensure_ascii=False) # json处理中文的问题
6 print(s)
7
8 # 字符转字典
9 d = json.loads('{"name": "洋洋", "age": null, "jobs": false}')
10 print(d['name'])
11
12 # 写入test.json文件中
13 with open('test.json',mode='w',encoding='utf-8')as f1:
14 json.dump({'name':'洋洋','age':None,'jobs':False},f1,ensure_ascii=False)
15
16 # 读取test.json文件内容
17 with open('test.json','r',encoding='utf-8')as f2:
18 print(json.load(f2))
19
20 #json文件只能保存一条数据,如果想保存多条数据,需要在列表里添加数据
21 [
22 {"name": "洋洋", "age": null, "jobs": false}
23 {"name": "洋洋", "age": null, "jobs": false}
24 ]

python之常用模块补充的更多相关文章

  1. 文成小盆友python-num7 -常用模块补充 ,python 牛逼的面相对象

    本篇内容: 常用模块的补充 python面相对象 一.常用模块补充 1.configparser模块 configparser 用于处理特定格式的文件,起内部是调用open()来实现的,他的使用场景是 ...

  2. python的常用模块之collections模块

    python的常用模块之collections模块 python全栈开发,模块,collections 认识模块 什么是模块?    常见的场景:一个模块就是一个包含了python定义和声明的文件,文 ...

  3. python常用模块补充hashlib configparser logging,subprocess模块

    一.hashlib模板 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定 ...

  4. python面向编程: 常用模块补充与面向对象

    一.常用模块 1.模块 的用用法 模块的相互导入 绝对导入 从sys.path (项目根目录)开始的完整路径 相对导入 是指相对于当前正在执行的文件开始的路径 只能用于包内模块相互间导入 不能超过顶层 ...

  5. python基础----常用模块

    一 time模块(时间模块)★★★★                                                      时间表现形式 在Python中,通常有这三种方式来表示时 ...

  6. Python一些常用模块

    阅读目录 一: collections模块 二: time,datetime模块 三: random模块 四: os模块 五: sys模块 六: json,pickle 七: re正则模块 八:re模 ...

  7. Python编程-常用模块及方法

    常用模块介绍 一.time模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行 ...

  8. python之常用模块

    python 常用模块 之 (subprocess模块.logging模块.re模块) python 常用模块 之 (序列化模块.XML模块.configparse模块.hashlib模块) pyth ...

  9. python之常用模块二(hashlib logging configparser)

    摘要:hashlib ***** logging ***** configparser * 一.hashlib模块 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 摘要算法 ...

随机推荐

  1. Mac 视频录制然后转 gif

    https://gist.github.com/dergachev/4627207 用 ScreenShot 或 Quicktime Player 录制视频, 保存位 in.mov ffmpeg -i ...

  2. JS应用实例2:轮播图

    在学习轮播图之前,要先会切换图片: 找三张图片,命名1.jpg,2.jpg,3.jpg 示例: <!DOCTYPE html> <html> <head> < ...

  3. centos7上安装cacti监控

     简介 在企业网络运维过程中,管理员必须时刻关注服务器的运行状态,如CPU.内存.磁盘空间使用情况等.为了能够及时的发现问题,尽量减少故障的发生.当网络中的设备,服务器等数量较多时,可以部署一套监控系 ...

  4. 机器学习技法笔记:11 Gradient Boosted Decision Tree

    Roadmap Adaptive Boosted Decision Tree Optimization View of AdaBoost Gradient Boosting Summary of Ag ...

  5. 人生苦短之---认识Python

    认识 Python 人生苦短,我用 Python —— Life is short, you need Python 目标 Python 的起源 为什么要用 Python? Python 的特点 Py ...

  6. HttpClient和HttpURLConnection的使用和区别(下)

    转自来自点击打开链接 接着上一篇,我们继续来分析HttpURLConnection的使用,以及两者的共同点和区别. 目录 用法 HttpURLConnection 区别 引用资料 用法 HttpURL ...

  7. day 75vue 脚手架学习 脚手架的使用

    前情提要: vue 自定化开发工具  (vue-cli的使用) 一:安装脚手架,以及准备 1: 下载地址, https://nodejs.org/en/download/ 2:如果下载成功,在cmd ...

  8. Go 新起点

    因项目需求 又得开始啃Go了,虽然比计划早了点,撸起袖子开始干吧~

  9. CSS基础和选择器

    什么是CSS? CSS是指层叠样式表(Cascading Style Sheets),样式定义如何显示HTML元素,样式通常又会存在于样式表中.也就是说把HTML元素的样式都统一收集起来写在一个地方或 ...

  10. RPC的原理总结

    一.RPC的引入 早期单机时代,一台电脑上运行多个进程,大家各干各的,老死不相往来.假如A进程需要一个画图的功能,B进程也需要一个画图的功能,程序员就必须为两个进程都写一个画图的功能.这不是整人么?于 ...