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. [英中双语] Pragmatic Software Development Tips 务实的软件开发提示

    Pragmatic Software Development Tips务实的软件开发提示 Care About Your Craft Why spend your life developing so ...

  2. python 小词云

    # Author:Alex.wang# Date:2017.06.02# Version:3.6.0 import matplotlib.pyplot as pltfrom wordcloud imp ...

  3. Python文件夹与文件的操作 ZZ

    最近在写的程序频繁地与文件操作打交道,这块比较弱,还好在百度上找到一篇不错的文章,这是原文传送门,我对原文稍做了些改动. 有关文件夹与文件的查找,删除等功能 在 os 模块中实现.使用时需先导入这个模 ...

  4. .net Basic

    Java's concurrent API https://code.google.com/p/netconcurrent/ java 之DelayQueue实际运用示例 阻塞任务队列DelayQue ...

  5. FQDN说明

    以下摘自百度百科: FQDN:(Fully Qualified Domain Name)完全合格域名/全称域名,是指主机名加上全路径,全路径中列出了序列中所有域成员.全域名可以从逻辑上准确地表示出主机 ...

  6. 安装nginx及依赖包

    #!/bin/bash #auto zhangjia #date 20171007#安装SSL##################################################### ...

  7. 【2D游戏引擎】WIP反思

    WIP(Working In Progress)是我初学游戏引擎开发时候开发的一个2D游戏引擎,当时计划为它实现类似Unity一样的编辑器,具有和Unity相似的工作流,但是由于水平不够,走了很多弯路 ...

  8. python进阶介绍(进阶1)

    转载请标明出处: http://www.cnblogs.com/why168888/p/6411664.html 本文出自:[Edwin博客园] python进阶介绍(进阶1) 1. python基础 ...

  9. ResNet 修改

    https://github.com/tornadomeet/ResNet apache 开源项目 修改如下: 训练模块 import argparse,logging,os import mxnet ...

  10. TensorFlow基础(二)实现神经网络

    (1)前向传播算法 神经网络的前向传播算法主要构成部分: 1.神经网络的输入: 2.神经网络的连接结构:神经网络是由神经元(节点)构成的 3.每个神经元中的参数. (2)TensorFlow随机数生成 ...