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. linux第一个C语言和sh脚本

    linux第一个C语言 $ gedit hello_world.c #include <stdio.h> int main(void) { printf("hello world ...

  2. SQL Server ->> Memory Allocation Mechanism and Performance Analysis(内存分配机制与性能分析)之 -- Minimum server memory与Maximum server memory

    Minimum server memory与Maximum server memory是SQL Server下配置实例级别最大和最小可用内存(注意不等于物理内存)的服务器配置选项.它们是管理SQL S ...

  3. 关于map容器的元素被无参初始化

    使用C++中的map容器定义一个mp,当你执行if语句判断mp[3]是否为1时,那么如果mp[3]以前不存在,此时mp[3]就会被无参初始化,second赋值为0. 以下的程序可以证明这一点.执行了第 ...

  4. Struts2学习-struts+spring

    学习帮助网址:http://www.cnblogs.com/S-E-P/archive/2012/01/18/2325253.html http://blog.csdn.net/ad921012/ar ...

  5. 上海大智慧某站未授权访问&SQL注入

    详细说明: 注入:禁用JS,http://dzh.com.cn/admin/userlist.phphttp://dzh.com.cn/admin/editUser.php?username=test ...

  6. Intellij IDEA 快速补全for循环:fori

    快速补全for循环:fori 效果:

  7. sqlite3如何退出...>状态

    一般是进入SQL数据语言模式了,此时要想退出...>状态,只要输入一条完整的SQL语句就行了,也就是末尾要加上:(分号)这个符号就可以退回到sqlite>状态

  8. 网络解析json

    public class myActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceSta ...

  9. 【[SHOI2014]概率充电器】

    这是一道概率+树形\(dp\) 首先我们看到这里每一个的贡献都是1,所以我们要求的期望就是概率 求得其实就是这个 \[\sum_{i=1}^nP_i\] \(P_i\)为节点\(i\)通电的概率 显然 ...

  10. C++实现的Buffer类

    写C#的同志一定觉得Byte []比C++的 BYTE * 加 Length的方式好的多.一来,只需要一个对象就可以是表示一段字节流,另一方面,由于C#的特性,不需要象C++那样还要记得删除指针.由于 ...