# 数据读写不一定是文件,也可以在内存中读写
# StringIO就是在内存中读写str from io import StringIO
f = StringIO() # 要把str写入StringIO,我们需要先创建一个StringIO
f.write('leyi')
print(f.getvalue()) # getvalue()方法用于获得写入后的str from io import StringIO
f = StringIO('hello world!')
s = f.readlines()
print(s) # ['hello world!'] # BytesIO
# StringIO操作的只能是str,如果要操作二进制数据,就需要使用BytesIO
# BytesIO实现了在内存中读写bytes,我们创建一个BytesIO,然后写入一些bytes
from io import BytesIO
f = BytesIO()
f.write('我是谁'.encode('utf-8'))
print(f.getvalue()) # b'\xe6\x88\x91\xe6\x98\xaf\xe8\xb0\x81'
print(f.getbuffer()) # <memory at 0x1089aaa10> import os
print(os.name) # posix
print(os.environ) # 查看环境变量
print(os.environ.get('PYCHARM_DISPLAY_PORT')) print(os.path.abspath('.')) # 查看当前目录的绝对路径
# os.mkdir(os.path.join(os.path.abspath('.'), 'test')) # 在当前目录创建一个目录 print(os.path.join('./111/222/333', '444.txt')) # 拼接路径 ./111/222/333/444.txt
print(os.path.split('./111/222/333.txt')) # 拆分路径 ('./111/222', '333.txt')
print(os.path.splitext('./xxx/xxx/xx.txt')) # 根据扩展名进行拆分 ('./xxx/xxx/xx', '.txt') os.rename('xxx.txt', 'yyy.txt') # 重命名文件
os.remove('xxx.txt') # 删除文件 # 查找当前目录所有的txt文件
import os
for x in os.listdir('.') :
if (os.path.isfile(x) and os.path.splitext(x)[1] == '.txt'):
print(x) # 查找当前目录所有的目录
for x in os.listdir('.') :
if (os.path.isdir(x)):
print(x) # 把变量从内存中变成可存储或传输的过程称之为序列化
import pickle
d = {'aa' : 111, 'bb': 2222}
print(pickle.dumps(d))
# b'\x80\x03}q\x00(X\x02\x00\x00\x00aaq\x01KoX\x02\x00\x00\x00bbq\x02M\xae\x08u.' # pickle.dumps()方法把任意对象序列化成一个bytes
# pickle.dump()直接把对象序列化后写入一个file-like Object import pickle
d = {'aa' : 111, 'bb': 2222}
print(pickle.dumps(d))
bb = pickle.dumps(d)
print(pickle.loads(bb))
with open('./b.txt', 'wb') as f:
pickle.dump(d, f)
with open('./b.txt', 'rb') as f2:
print(pickle.load(f2)) JSON和Python内置的数据类型对比:
 import json
d = {'aa': 111, 'bb': 222}
d2 = dict(aa = 111, bb = 222)
print(type(json.dumps(d)))
print(type(json.dumps(d2)))
print(type(json.loads(json.dumps(d))))
print(type(json.loads(json.dumps(d2))))

  

python笔记三的更多相关文章

  1. guxh的python笔记三:装饰器

    1,函数作用域 这种情况可以顺利执行: total = 0 def run(): print(total) 这种情况会报错: total = 0 def run(): print(total) tot ...

  2. Python笔记(三)继承和多态、动态语言

    一.继承 先定义一个A类 class A(object): def fun(self): print "Run A fun()" 在定义一个B类 class B(A): pass ...

  3. MOOC python笔记(三) 序列容器:字符串、列表、元组

    容器概念 容器是Python中的重要概念,分为有序与无序. 有序容器也称为序列类型容器,如:字符串.列表. 通用序列容器操作 容器连接+ 加号可以把两个序列连接成一个更大的容器,相加后两个序列的值并不 ...

  4. python笔记三(面向对象)

    Python3 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没有接触 ...

  5. python笔记三(list、tuple)

    一.list list的增删改查 #增, classmates.append("nadech") #在末尾追加一个元素 classmates.insert(1,"agui ...

  6. python笔记三:函数式编程

    1.概念: 函数式编程就是一种抽象程度很http://i.cnblogs.com/EditPosts.aspx?opt=1高的编程范式,纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数,只要 ...

  7. Python笔记(三十)_python标准异常总结

    python标准异常总结 AssertionError 断言语句(assert)失败 AttributeError 尝试访问未知的对象属性 EOFError 用户输入文件末尾标志EOF(Ctrl+d) ...

  8. Python笔记(三)_字典与集合

    字典dict 映射类型,以键-值的方式存储,通过键来取相应的值 member={'one':1,'two':2,'three':3} 创建字典member=dict('苹果'='apple','桔子' ...

  9. Python 学习笔记三

    笔记三:函数 笔记二已取消置顶链接地址:http://www.cnblogs.com/dzzy/p/5289186.html 函数的作用: 給代码段命名,就像变量給数字命名一样 可以接收参数,像arg ...

随机推荐

  1. shell实现批量创建交叉编译工具软链接

    在学习嵌入式过程中,常常用到交叉编译工具,而原本的交叉工具链比较长,不利于记忆以及使用, 解压后的交叉编译工具链如下图所示 为了更好的使用交叉编译工具与其他开发者保持一致,经常需要用到软链接. NAM ...

  2. python中模块和包的概念

    1.模块 一个.py文件就是一个模块.这个文件的名字是:模块名.py.由此可见在python中,文件名和模块名的差别只是有没有后缀.有后缀是文件名,没有后缀是模块名. 每个文件(每个模块)都是一个独立 ...

  3. leetcood学习笔记-206-反转链表

    题目描述: 最佳解: class Solution(object): def reverseList(self, head): """ :type head: ListN ...

  4. bzoj 1010,1011

    上次应某位同学的要求先把代码给贴上了,今天还是细细讲讲比较好 bzoj 1010: dp+斜率优化 首先dp的思路并不是太难想出来,直接给方程:f[i] = min{f[j-1] + (sum[i]- ...

  5. FFT的应用

    FFT的应用 --讲稿 概述 FFT的模板很简单,大家都会背,于是出题的空间就在于建模了.FFT的题目难在建模,往往需要将问题抽象出来,经过一系列转化后得到乘积式的和,再赋予式子各个项的系数一定的意义 ...

  6. NX二次开发-UFUN将工程图中的点坐标映射到建模绝对坐标UF_VIEW_map_drawing_to_model

    #include <uf.h> #include <uf_ui.h> #include <uf_draw.h> #include <uf_view.h> ...

  7. NX二次开发-创建经典工具栏UF_UI_create_toolbar

    NX9+VS2012 1.打开D:\Program Files\Siemens\NX 9.0\UGII\menus\ug_main.men 找到装配和PMI,在中间加上一段 TOGGLE_BUTTON ...

  8. 数据结构C++版-线性表

    PS:资料来源慕课网视频. 一.什么是线性表 线性表是n个数据元素的有限序列. 分类: 二.补充知识点 1.栈和队列有出操作.入操作,对应线性表(数组)为插入元素和删除元素,而线性表中要获取指定元素值 ...

  9. IDea 工具debug模式详细使用说明

    IDea 工具debug模式详细使用说明 IDEA中如何使用debug调试项目 一步一步详细教程 Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生 ...

  10. SparkSession、SparkContext、SQLContext和HiveContext之间的区别。

    SparkContext 是什么? 驱动程序使用SparkContext与集群进行连接和通信,它可以帮助执行Spark任务,并与资源管理器(如YARN 或Mesos)进行协调. 使用SparkCont ...