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. tcp三次握手和四次挥手(2)

      背景描述 通过上一篇中网络模型中的IP层的介绍,我们知道网络层,可以实现两个主机之间的通信.但是这并不具体,因为,真正进行通信的实体是在主机中的进程,是一个主机中的一个进程与另外一个主机中的一个进 ...

  2. docker images存放路径指定

    steps: 1. mkdir /home/docker(你想要docker存放image的目录) 2. systemctl stop docker 3. vi /usr/lib/systemd/sy ...

  3. Spring注解开发-全面解析常用注解使用方法之组件注册

    目录 1. @Configuration 2. @ComponentScan excludeFilters includeFilters 使用自定义TypeFilter 3. @Bean @Scope ...

  4. MyEclipse中关于JRE System Library、Web App Libraries的疑惑

    简要说明一下:其实,这三个都是jar包的存放集合. 1.JRE System Library主要存放J2SE的标准jar,一般不需要调整. 2.Referenced Libraries是存放第三方的j ...

  5. July 13th 2017 Week 28th Thursday

    No dream is too big, and no dreamer is too small. 梦想再大也不嫌大,追梦的人再小也不嫌小. Hold on to your dreams, but b ...

  6. GO语言(八) defer注意点

    package main import ( "net" "os" "fmt" "io/ioutil" ) func Cl ...

  7. Latex 参考文献引用

    转:http://blog.sina.com.cn/s/blog_4b164557010143tl.html 导入 \usepackage[option]{natbib} 具体的 option 有 r ...

  8. React v15.5.0更新说明 & v16.0.0更新预告

    React今日发布了15.5.0版本,同时这也将是以15开头的最后一个版本,下一次发布,我们将迎来React 16.0.0 在15.5.0这一版本中,主要有以下两处改动: 独立React.PropTy ...

  9. SAP S/4HANA使用ABAP获得生产订单的状态

    在S/4HANA里,我们如何根据一个销售订单的行项目,查看对应的生产订单状态? 双击行项目: 点击Schedule line: 这里就能看到生产订单的ID和状态了. 其中订单的状态存储在表vsaufk ...

  10. 41. First Missing Positive (sort) O(n) time

    Given an unsorted integer array, find the smallest missing positive integer. Example 1: Input: [1,2, ...