Python阶段复习 - part 2 - Python序列/持久化
1. 把一个数字的list从小到大排序,然后写入文件,然后从文件中读取出来文件内容,然后反序,在追加到文件的下一行中
>>> import json
>>> import codecs
>>>
>>> a = [12,34,121,324,14,2,345,13,2,5,1,35,6,23,235,123,21232234]
>>> a.sort() # 原地排序
>>> a
[1, 2, 2, 5, 6, 12, 13, 14, 23, 34, 35, 121, 123, 235, 324, 345, 21232234]
>>> with codecs.open('text.txt','w') as f:
... f.write(json.dumps(a)) # 写入文件前的序列化
...
>>> with codecs.open('text.txt','r') as f:
... b = json.loads(f.read()) # 读取并反序列化
...
>>> b
[1, 2, 2, 5, 6, 12, 13, 14, 23, 34, 35, 121, 123, 235, 324, 345, 21232234]
>>> b.reverse() # 倒序排列
>>> b
[21232234, 345, 324, 235, 123, 121, 35, 34, 23, 14, 13, 12, 6, 5, 2, 2, 1]
>>> with codecs.open('text.txt','a+') as f:
... f.write(json.dumps(b)) # 追加模式写入文件
...
2. 分别把 string, list, tuple, dict写入到文件中
这里如果对tuple进行序列化的时候会出现一个问题,虽说json支持对tuple类型的数据进行序列化,但是,序列化完毕后变成了list,并且反序列化回来后依旧为list,元素类型都变为了unicode,所以这里如果为了还原tuple,那么最好使用pickle,当然如果和其他api进行交互,那么建议都使用dict这种形式
>>> import codecs
>>> import json
>>> a = 'hello world'
>>> b = ['hello','world']
>>> c = ('hello','world')
>>> d = {'hello':'world'}
>>> with codecs.open('test.txt','w') as f:
... f.write(json.dumps(a))
... f.write(json.dumps(b))
... f.write(pickle.dumps(c))
... f.write(json.dumps(d))
...
Python阶段复习 - part 2 - Python序列/持久化的更多相关文章
- Python阶段复习 - part 3 - Python函数
利用函数打印9*9乘法表 def cheng(num): for i in range(1,num+1): for j in range(1,i+1): print('{0} * {1} = {2}' ...
- Python阶段复习 - part 1 - Python基础练习题
1.实现1-100的所有的和 # 方法1: sum = 0 for i in range(1,101): sum += i print(sum) # 方法2: num1 = int(input('请输 ...
- Python阶段复习 - part 4 - 用户登录程序
简易版: #!/usr/bin/env python # _*_ coding:UTF-8 _*_ # __auth__:Dahlhin import sys userinfo = r'userinf ...
- python基础复习
复习-基础 一.review-base 其他语言吗和python的对比 c vs Python c语言是python的底层实现,解释器就是由python编写的. c语言开发的程序执行效率高,开发现率低 ...
- Python并发复习1 - 多线程
一.基本概念 程序: 指令集,静态, 进程: 当程序运行时,会创建进程,是操作系统资源分配的基本单位 线程: 进程的基本执行单元,每个进程至少包含一个线程,是任务调度和执行的基本单位 > 进程和 ...
- python高级(二)—— python内置序列类型
本文主要内容 序列类型分类: (1)容器序列.扁平序列 (2)可变序列.不可变序列 列表推导式 生成器表达式 元组拆包 切片 排序(list.sort方法和sorted函数) bisect pytho ...
- Python之利用reduce函数求序列的最值及排序
在一般将Python的reduce函数的例子中,通常都是拿列表求和来作为例子.那么,是否还有其他例子呢? 本次分享将讲述如何利用Python中的reduce函数对序列求最值以及排序. 我们用r ...
- python 基础复习
1.简述cpu.内存.硬盘的作用 cpu (1)cpu:处理逻辑运算.算术运算 (2)cpu:接受指令传给电脑硬件,让其运行 内存: (1)内存:从硬盘中读取数据,供其cpu调取指令运行,短暂的存贮数 ...
- python基础之数值类型与序列类型
Hello大家好,我是python学习者小杨同学,已经学习python有一段时间,今天将之前学习过的内容整理一番,在这与大家分享与交流,现在开始我们的python基础知识之旅吧. 数值类型与序列类型 ...
随机推荐
- 自动化测试元素查找利器firepath介绍
自动化测试查找元素和确定元素xpath路径是否正确在业界有个很好的工具就是firefox 浏览器的 firepath 问题: firefox 最新版本已经不支持firebug和firepath这两个插 ...
- 第八篇Python基本数据类型之列表、元组与字典
列表 写在最前,必须要会的:append(),extend(),insert(),索引,切片,循环 list 是一个类,是个对象 列表用 方括号[]括起来的,[]内以逗号分割每个元素,列表中的元素可 ...
- Zabbix_agentd 启动报错
C:\zabbix>c:\Zabbix\zabbix_agentd.exe -i -c c:\Zabbix\zabbix_agentd.conf zabbix_agentd.exe [1144] ...
- Ajax跨域请求解决方式
前端 jQuery方式 .ajax({ type: "POST", url: "http://xxx.com/api/test", dataType: 'jso ...
- android:保存用户名密码等应用程序数据
转自http://blog.sina.com.cn/s/blog_a73687bc0101dsjj.html (一)使用SharedPreferences 1.保存信息: SharedPrefere ...
- 以太坊remix IDE安装步骤
Remix 以太坊Solidity IDE搭建与初步使用 以太坊: 因为以太坊为开源社区,虽然东西很优秀,但是组件十分的杂乱,因此首先简单介绍下以太坊的一些常用组件: Geth: Geth是由以太坊基 ...
- Daily Scrum02 12.05
deadline果然是第一生产力...这学期一下子4~5个大的Project.然后截止日期都在近期.所有的组员都很辛苦!大家加油~ 这个scrum是当天过后一天补上的.因为当前负责的同学正在忙于编译大 ...
- lintcode-60-搜索插入位置
60-搜索插入位置 给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引.如果没有,返回到它将会被按顺序插入的位置. 你可以假设在数组中无重复元素. 样例 [1,3,5,6],5 → 2 [ ...
- http请求整理
终于又回来了,先来简单整理一波http请求的信息.对于前端来说,不管是在面试还是在实际项目中,都有必要去了解一些关于http的信息. http请求包含三部分:请求行request line.请求头re ...
- shit element ui & form password validation
shit element ui & form password validation shit docs https://github.com/yiminghe/async-validator ...