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. xampp/apache启动失败解决方法

    我的问题是: 9:15:53 AM  [Apache] Error: Apache shutdown unexpectedly.9:15:53 AM  [Apache] This may be due ...

  2. Android基础-系统架构分析,环境搭建,下载Android Studio,AndroidDevTools,Git使用教程,Github入门,界面设计介绍

    系统架构分析 Android体系结构 安卓结构有四大层,五个部分,Android分四层为: 应用层(Applications),应用框架层(Application Framework),系统运行层(L ...

  3. 深度学习笔记(八)Focal Loss

    论文:Focal Loss for Dense Object Detection 论文链接:https://arxiv.org/abs/1708.02002 一. 提出背景 object detect ...

  4. jvm-class文件简介

    jvm全称 java virtual machine (java虚拟机),也就是在计算机上再虚拟一个计算机,它存在于计算机内存中并运行在操作系统之上的. javap -v class文件名 > ...

  5. UFLDL 教程学习笔记(三)自编码与稀疏性

    UFLDL(Unsupervised Feature Learning and Deep Learning)Tutorial 是由 Stanford 大学的 Andrew Ng 教授及其团队编写的一套 ...

  6. DDD实战进阶第一波(三):开发一般业务的大健康行业直销系统(搭建支持DDD的轻量级框架二)

    了解了DDD的好处与基本的核心组件后,我们先不急着进入支持DDD思想的轻量级框架开发,也不急于直销系统需求分析和具体代码实现,我们还少一块, 那就是经典DDD的架构,只有了解了经典DDD的架构,你才能 ...

  7. 只知道ajax?你已经out了

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由前端林子发表于云+社区专栏 随着前端技术的发展,请求服务器数据的方法早已不局限于ajax.jQuery的ajax方法.各种js库已如雨 ...

  8. 前端回顾:2016年 JavaScript 之星

    JavasScript社区在创新的道路上开足了马力,曾经流行过的也许一个月之后就过时了.2016已经结束了.你可能会想你是否错过一些重要的东西?不用担心,让我们来回顾2016年前端有哪些主流.通过比较 ...

  9. 基于 CGLIB 库的动态代理机制

    之前的文章我们详细的介绍了 JDK 自身的 API 所提供的一种动态代理的实现,它的实现相对而言是简单的,但是却有一个非常致命性的缺陷,就是只能为接口中的方法完成代理,而委托类自己的方法或者父类中的方 ...

  10. Java设计模式学习记录-外观模式

    前言 这次要介绍的是外观模式(也称为门面模式),外观模式也属于结构型模式,其实外观模式还是非常好理解的,简单的来讲就是将多个复杂的业务封装成一个方法,在调用此方法时可以不必关系具体执行了哪些业务,而只 ...