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 ...
随机推荐
- pymupdf 修改pdf文件
安装: sudo pip install pymupdf==1.16.0 引入使用: import fitz 可以插入文字.图片.... 帮助文档: PyMuPDF documentation ht ...
- delphi xe10 消息操作
//消息提醒(从手机屏幕顶部向下滑动,出现的提示消息) NotificationC: TNotificationCenter; procedure TNotificationsForm.btnSend ...
- [HL] 7.5 集训总结
对于某唤做赛区难度的题,我只能是内流满面..拿到题,A神题不可做,B,神题不可做,C,神题不可做...最后yy了一个A的算法...只得了20 TAT.C题骗分似乎有50 ..B题本来想骗分..然后/ ...
- Go 程序开发的注意事项
Go 程序开发的注意事项 1) Go 源文件以 "go" 为扩展名. 2) Go 应用程序的执行入口是 main()函数. 这个是和其它编程语言(比如 java/c) ...
- 给标签设置disabled属性后提交不了数据
项目中遇到给select标签添加disabled属性然后提交表单的时候不能提交该表单的数据到后台, readonly属性对提交数据没有限制,但是readonly属性对radio.select.chec ...
- string反向找位置,分割字符串(只取文件夹路径)
1 #include <uf.h> 2 #include <uf_part.h> 3 #include <atlstr.h> 4 #include <iost ...
- Unity3D中的线程与协程
线程 Unity3D是以生命周期主线程循环进行游戏开发. Unity3D中的子线程无法运行Unity SDK(开发者工具包,软件包.软件框架)跟API(应用程序编程接口,函数库). 限制原因:大多数游 ...
- Dll注入技术之APC注入
APC注入的原理是利用当线程被唤醒时APC中的注册函数会被执行的机制,并以此去执行我们的DLL加载代码,进而完成DLL注入的目的,其具体流程如下: 1)当EXE里某个线程执行到SleepEx( ...
- 事件绑定addEventListener
通过addEventListener监听函数实现的dom事件绑定 addEventListener可以为当前dom添加一个事件(这个事件可以是个已有的事件),这就无法避免我们在写代码的时候重复去绑定同 ...
- spring boot jpa没有自动生成表的原因——加上@Entity
别人的项目弄了好久,竟然是忘记加注解,当然配置文件还是要配置jpa的,pom也要依赖jpa. @Entity jpa: hibernate: ddl-auto: update show-sql: tr ...