python笔记三
# 数据读写不一定是文件,也可以在内存中读写
# 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笔记三的更多相关文章
- guxh的python笔记三:装饰器
1,函数作用域 这种情况可以顺利执行: total = 0 def run(): print(total) 这种情况会报错: total = 0 def run(): print(total) tot ...
- Python笔记(三)继承和多态、动态语言
一.继承 先定义一个A类 class A(object): def fun(self): print "Run A fun()" 在定义一个B类 class B(A): pass ...
- MOOC python笔记(三) 序列容器:字符串、列表、元组
容器概念 容器是Python中的重要概念,分为有序与无序. 有序容器也称为序列类型容器,如:字符串.列表. 通用序列容器操作 容器连接+ 加号可以把两个序列连接成一个更大的容器,相加后两个序列的值并不 ...
- python笔记三(面向对象)
Python3 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没有接触 ...
- python笔记三(list、tuple)
一.list list的增删改查 #增, classmates.append("nadech") #在末尾追加一个元素 classmates.insert(1,"agui ...
- python笔记三:函数式编程
1.概念: 函数式编程就是一种抽象程度很http://i.cnblogs.com/EditPosts.aspx?opt=1高的编程范式,纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数,只要 ...
- Python笔记(三十)_python标准异常总结
python标准异常总结 AssertionError 断言语句(assert)失败 AttributeError 尝试访问未知的对象属性 EOFError 用户输入文件末尾标志EOF(Ctrl+d) ...
- Python笔记(三)_字典与集合
字典dict 映射类型,以键-值的方式存储,通过键来取相应的值 member={'one':1,'two':2,'three':3} 创建字典member=dict('苹果'='apple','桔子' ...
- Python 学习笔记三
笔记三:函数 笔记二已取消置顶链接地址:http://www.cnblogs.com/dzzy/p/5289186.html 函数的作用: 給代码段命名,就像变量給数字命名一样 可以接收参数,像arg ...
随机推荐
- dev中 ,usercontrol打印界面内容,打印预览和打印
首先,在对应的文件夹下面添加引用,如下图 如果没有就下载下来包. 预先在本地文件夹下面建立.frx文件,像这样的, 然后在触发事件下面写 //打印预览 private void btn_Preview ...
- Replication Controller、Replica Set
假如我们现在有一个Pod正在提供线上的服务,我们来想想一下我们可能会遇到的一些场景: 某次运营活动非常成功,网站访问量突然暴增 运行当前Pod的节点发生故障了,Pod不能正常提供服务了 第一种情况,可 ...
- wpf tabcontrol内的datagrid的selectionChanged事件向往传递问题
tabcontrol 内的一个tabitem里是datagrid 当程序相应datagrid的selectionchanged事件后会向上传递到tabcontrol的selectionchanged事 ...
- 经典换根dp——hdu2196
给定一棵边权树,求距离每个点最远的点,输出这个距离 #include<bits/stdc++.h> using namespace std; #define N 10005 ]; int ...
- D语言简介
D语言,一种通用计算机程序语言,威力强大.功能丰富,支持多种编程范式,例如面向对象.[1] D语言最初由Digital Mars公司就职的Walter Bright于2001年发布,意图改进C++语 ...
- 使用Devstack部署neutron网络节点
本文为minxihou的翻译文章,转载请注明出处Bob Hou: http://blog.csdn.net/minxihou JmilkFan:minxihou的技术博文方向是 算法&Open ...
- STM32F103
memory map • Four masters: – Cortex® -M3 core DCode bus (D-bus) and System bus (S-bus)– GP-DMA1 & ...
- 利用DOM节点找对象和直接在标签属性中调函数传值this的书写区别
同样的功能,不同的书写格式. 1.个人觉得比较繁琐的写法,但是比较常见,特别是在大项目的时候常用的就是这种方法: <div id="mouse" onmouseover=&q ...
- spark1.0.2读取hbase(CDH0.96.1)上的数据
基本环境: 我是在win7环境下,spark1.0.2,HBase0.9.6.1 使用工具:IDEA14.1, scala 2.11.6, sbt.我现在是测试环境使用的是单节点 1.使用IDEA创建 ...
- DRF的序列化组件
目录 DRF的序列化组件 Serializer组件 序列化 反序列化 ModelSerializer组件 序列化和反序列化 自定义Response方法 基表相关 DRF中ORM的多表关联操作 外键设计 ...