1.namedtuple
    命名元组  -> 类似创建一个类
from collections import namedtuple
 
# 类
p = namedtuple("Point", ["x", "y","z"])
# 对象
p1 = p(10, 20,30)
print(p1)
 
print(p1.x)  #10
print(p1.y)  #20
2.os模块
     主要是针对操作系统
     一般用来操作文件系统
   os.makedirs() 可以一次性创建多级目录
   os.rmdir() 删除指定一个文件夹
import os
 
#必须要记住.很常用
os.makedirs("baby/安哥拉/特斯拉/黄晓明") # 可以一次性创建多级目录
 
os.mkdir("hyf\zxx\lvb") # 上层文件夹必须存在
 
 
os.removedirs("baby/安哥拉/特斯拉/黄晓明") # 可以帮我们删除当前这个目录级中的所有空文件夹
#需要记住
os.rmdir("baby/baobao/baby/黄晓明") # 指定文件夹删除
 
os.system("dir")
print(os.popen("dir").read()) # 执行shell脚本或者cmd命令
 
print(os.getcwd()) #  当前程序运行的文件夹  D:\python_workspace_s18\day23 内置模块02
 
os.chdir("baby") # 改变工作目录
 
print(os.getcwd())
f = open("../userinfo", mode="r", encoding="utf-8")
for line in f:
    print(line)
   
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.dirname()  获取到文件的文件夹
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.sep 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/" 
os.linesep 输出当前平台使⽤的⾏终⽌符,win下为"\r\n",Linux下为"\n" 
os.pathsep 输出⽤于分割⽂件路径的字符串 win下为;,Linux下为: 
os.name 输出字符串指示当前使⽤平台。win->'nt'; Linux->'posix'
 
print(os.path.abspath('userinfo') ) # 把相对路径改成绝对路径
print(os.path.split(r"D:\python_workspace_s18\day23 内置模块02\userinfo")) #将路径分割成目录和文件名二元组返回
print(os.path.dirname(r"D:\python_workspace_s18\day23 内置模块02\userinfo"))  #返回目录
print(os.path.basename(r"D:\python_workspace_s18\day23 内置模块02\userinfo"))  #返回文件名
 
print(os.path.exists(r"D:\python_workspace_s18\day23 内置模块02") ) # 存在?如果路径存在文件夹,返回True;如果不存在,返回Flase
3.sys模块
      主要针对的是我们的python解释器
      sys.path(重点中的重点)   模块的查找路径
sys.argv 命令⾏参数List,第⼀个元素是程序本身路径
sys.exit(n) 退出程序,正常退出时exit(0),错误退出
sys.exit(1) sys.version 获取Python解释程序的版本信息 
sys.path 返回模块的搜索路径,初始化时使⽤PYTHONPATH环境变量的值 
sys.platform 返回操作系统平台名称
import sys
# print(sys.platform)
print(sys.path)  # 找模块的. 必须要记住. 模块的搜索路径
sys.path.append("D:\\python_workspace_s18\\day21 继承")
4.序列化
     把一个队形拍散叫序列化
     把拍散的内容整整合回对象,叫反序列化
5.pickle(重点)
    把一个对象进行序列化操作
  1. dumps( ) 把对象序列化成字节
  2.loads()  把字节反序列化成对象
 
  1.dump( ) 把对象序列化写入文件
  2. load ()  把文件中的内容反序列化成对象
import pickle
#
class Elephant:
    def __init__(self, name, weight, height):
        self.name = name
        self.weight = weight
        self.height = height
 
    def tiaoxi(self):
        print(f"{self.name}大象特别喜欢调戏人")
 
e = Elephant("宝宝", "185T", "175")
# e.tiaoxi()
#
# # 序列化
bs = pickle.dumps(e) # 把对象进行序列化
print(bs)
 
# bs = b'\x80\x03c__main__\nElephant\nq\x00)\x81q\x01}q\x02(X\x04\x00\x00\x00nameq\x03X\x06\x00\x00\x00\xe5\xae\x9d\xe5\xae\x9dq\x04X\x06\x00\x00\x00weightq\x05X\x04\x00\x00\x00185Tq\x06X\x06\x00\x00\x00heightq\x07X\x03\x00\x00\x00175q\x08ub.'
# 发序列化
dx = pickle.loads(bs) # 发序列化. 得到的是大象
dx.tiaoxi()
 
e1 = Elephant("宝宝", "185T", "175")
e2 = Elephant("宝贝", "120T", "120")
f = open("大象", mode="wb")
# 这也是序列化
pickle.dump(e1, f) # 没有s的这个方法是把对象打散写入到文件, 序列化的内容不是给人看的
pickle.dump(e2, f) # 没有s的这个方法是把对象打散写入到文件, 序列化的内容不是给人看的
 
f = open("大象", mode="rb")
while 1:
    try:
        obj = pickle.load(f)
        obj.tiaoxi()
    except Exception:
        break
 
 
 
e1 = Elephant("宝宝", "185T", "175")
e2 = Elephant("宝贝", "120T", "120")
 
lst = [e1, e2]
 
pickle.dump(lst, open("大象", mode="wb"))
 
 
lst = pickle.load(open("大象", mode="rb"))
for dx in lst:
    dx.tiaoxi()
6.json(重点中的重点)
  json可以认为是python中的字典.有一点点的不一样:
 python: True, False,None
 json :  true, false,null
1. dumps( ) 把对象序列化成json
  2.loads()  把json反序列化成对象
 
  1.dump( ) 把对象序列化写入文件
  2. load ()  把文件中的内容反序列化成对象
import json
 
dic = {"baby":None, "hxm":False, "syy":"史杨杨"}
 
s = json.dumps(dic, ensure_ascii=False) # json处理中文的问题
print(s)
 
d = json.loads('{"baby": null, "hxm": false, "syy": "史杨杨"}')
print(d['baby'])
 
f = open("baby.json", mode="w", encoding="utf-8")
json.dump({"baby":None, "hxm":False, "syy":"史杨杨"}, f, ensure_ascii=False)
 
f = open("baby.json", mode="r", encoding="utf-8")
obj = json.load(f)
print(obj)
 

day 23 模块2的更多相关文章

  1. python --- 23 模块 os sys pickle json

    一.   os模块 主要是针对操作系统的 用于文件操作 二.    sys 模块 模块的查找路径   sys.path 三.pickle 模块 1.  pickle.dumps(对象) 序列化  把对 ...

  2. 23 模块 os sys pickle json

    一.   os模块 主要是针对操作系统的 用于文件操作 二.    sys 模块 模块的查找路径   sys.path 三   pickle 模块 1.  pickle.dumps(对象) 序列化  ...

  3. NodeJS学习笔记 (23)模块机制-module

    https://github.com/chyingp/nodejs-learning-guide

  4. WPF权限控制——【2】模块、菜单、按钮

    周末没有工作,没有写博客,因为觉得休息很必要:曾听到一句话是这样说的:"你们得救在乎归回安息:你们得力在乎平静安稳".当我想到太阳没秒钟要燃烧420万吨的燃料时,想到的就是造物主的 ...

  5. 嵌入式系统Linux内核开发工程师必须掌握的三十道题(转)

    嵌入式系统Linux内核开发工程师必须掌握的三十道题 如果你能正确回答以下问题并理解相关知识点原理,那么你就可以算得上是基本合格的Linux内核开发工程师,试试看! 1) Linux中主要有哪几种内核 ...

  6. 尚学堂马士兵struts2 课堂笔记(三)

    19-20 简单数据验证 例如 前台jsp 及struts.xml <a href="user/user!add?name=a" >添加用户</a> < ...

  7. 三十道linux内核面试题

      1. Linux中主要有哪几种内核锁? Linux的同步机制从2.0到2.6以来不断发展完善.从最初的原子操作,到后来的信号量,从大内核锁到今天的自旋锁.这些同步机制的发展伴随Linux从单处理器 ...

  8. Unity3d地图制作之模型高光

    由于颇受暗黑破坏神美工的影响,最近都在研究怎么制作场景地图之类的. 那么今日讲的模型高光虽然和地图无关,但是也涉及到一些美工的知识,尤其是shader. 按照国际惯例,先贴一张图饱饱眼福. 大家可以看 ...

  9. Python_021(内置方法讲解二)

    一.内置方法二 1.__del__方法: a:构造方法:创建一个空间,  析构方法;释放一个空间; b:触发del的情况:Python解释器的垃圾回收机制,和遇到 del 对象名 c:析构方法的思想: ...

随机推荐

  1. androidcoookie

    https://segmentfault.com/a/1190000002877843 目前在操作登录的coookie,js和原生

  2. SpringMVC学习(四)——处理器Handler的各种常用实现

    代码:http://files.cnblogs.com/files/douJiangYouTiao888/MultiActionController.zip 在使用springMVC的开发过程中,Ha ...

  3. C#常用排序和查找算法

    1.C#堆排序代码 private static void Adjust (int[] list, int i, int m) { int Temp = list[i]; int j = i * 2 ...

  4. PowerShell管理Hyper-V(Windows2008R2)

    gwmi -list -namespace "root\virtualization" 在Windows2012R2之前的版本,Hyper-V管理都是用的root\virtuali ...

  5. Python学习---重点模块之configparse

    configparse模块常用于生成和修改常见的配置文档 生成配置模块:用字典写 import configparser config = configparser.ConfigParser() co ...

  6. zabbix 添加 ROS 软路由监控 WinBox设置

    如图设置

  7. Kafka与MQ的区别

    作为消息队列来说,企业中选择mq的还是多数,因为像Rabbit,Rocket等mq中间件都属于很成熟的产品,性能一般但可靠性较强, 而kafka原本设计的初衷是日志统计分析,现在基于大数据的背景下也可 ...

  8. python UI自动化实战记录三:pageobject-基类

    脚本思路: 使用pageobject模式,写一个basepage基类,所有页面的通用方法封装到基类中.比如打开页面,关闭页面,等待时间,鼠标移到元素上,获取单个元素,获取一组元素,获取元素的子元素,截 ...

  9. sql语句中where,have,on的区别

    一.where和on的区别 数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户.  在使用left jion时,on和where条件的区别如下:   1. ...

  10. T-sql中的三种分页查询

    USE [APS_Future_FT] GO /****** Object: StoredProcedure [dbo].[A_PagingAndSorting] Script Date: 2013/ ...