一.文件处理和json模块(容易混淆知识点即用法)
一、文件处理
注意点1:
打开文件包含两部分资源:操作系统级打开得文件+应用程序的变量。
在操作完毕一个文件时,必须把该文件的两部分资源一个不落的回收
如下:
f.close() #回收操作系统级打开的文件
del f #回收应用程序级的变量,python 的自动回收机制决定了我们无需再考虑这部操作
也可以用with关键字来管理上下文(防止忘写)
注意点2:
操作文件(f.open(...))是由操作系统打开文件,如果没有指定编码,那么默认编码是操作系统说了算(windows下是GBK,linux下是utf-8)
若要保证不乱码,文件以什么方式存的就以什么方式打开
f = open('txt','r',encoding = 'utf-8')
注意点3:(记住啊)
打开文件的模式:
(默认为文本模式:'t',非文本文件用'b'模式,表示以字节的方式操作,该模式不需要考虑字符编码,图片格式等等;这两种模式和下面搭配使用)
'r':只读模式(默认模式,文件必须存在,不存在则抛出异常)
'w':只写模式 (不存在则创建;存在则清空内容)
'a':只追加写模式(不存在则创建;存在则追加内容)
'x':只写模式(不存在则创建,存在则报错)
其它:
'+':表示可以同时读写某个文件(和上面搭配)
操作文件的方法:
读:
f.read() #读取所有内容,光标移动到文件末尾
f.readline() #读取一行内容,光标移动到第二行首部
f.readlines() #读取每一行内容,存放于列表中
n
写:
f.write('lzl 真帅!\n') #文本模式写,需要自己写换行符
f.write('lzl 真帅!\n'.encode('utf-8')) #b模式下写,..(懒得打字了,都一样)
f.writelines(['lzl\n','真帅!\n']) #向文件中写入一序列的字符串,这一序列字符串可以是由迭代对象产生的,如一个字符串列表
f.readable() #文件是否可写
f.writable() #文件是否可读
f.closed #文件是否关闭
f.encoding #如果文件打开模式为b,则没有该属性
f.flush() #立刻将文件内容从内存刷到硬盘
二、json 模块
补充:
把对象(变量)从内存中变成可存储或传输的过程称之为序列化
序列化原因:
1.持久保存状态
2.跨平台交互数据
注意点1:
json.dumps(): 可以对数据进行编码(序列化)
json.loads(): 对数据进行解码(反序列化)
json.dump():方便文件编码操作
json.load():方便文件解码操作
如下:
import json
with open('a.txt','w') as f:
j = json.dumps('aa')
f.write(j)
#json.dump('aa',f)
with open('a.txt','r') as f:
a = f.read()
print(json.loads(a))
# print(json.load(f))
一.文件处理和json模块(容易混淆知识点即用法)的更多相关文章
- 数据存储之json文件处理和csv文件处理
什么是json: JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.它基于 ECMAScript (w3c制定的js规范)的一个子集,采用 ...
- python之异常处理和re模块补充
一.re模块的补充 1.从一个字符串中获取要匹配的内容 findall:返回一个列表 2.search ***** 验证用户输入内容 '^正则规则$':返回一个对象,用group()取值 3.matc ...
- python基础之 异常处理和logging模块
1.异常处理 l = ['apple','admin','kobe'] for id,item in enumerate(l,1): print(id,item) try: choose_id = i ...
- Spark2 文件处理和jar包执行
上传数据文件 mkdir -p data/ml/ hadoop fs -mkdir -p /datafile/wangxiao/ hadoop fs -ls / hadoop fs -put /hom ...
- python json模块 超级详解
JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.JSON的数据格式其实就是python里面的字典格式,里面可以包含方括号括起来的数组,也 ...
- Python基础之模块:3、os模块 sys模块 json模块 json实战
目录 一.os模块 1.创建目录 2.删除目录 3.查看指定路径下目录内容 4.删除/重命名文件 5.获取/切换当前目录 6.动态获取项目根路径 7.拼接/切割路径 8.判断文件.目录是否存在 9.判 ...
- Python 第三篇(上):python文件基础操作、json模块、lambda、map、filter、reduce和函数位置参数
python一切皆对象,linux一切皆文件,python操作文件是很常见的O/I操作,其内置来open()函数可以完成文件的基本操作: 一:使用内置open()函数操作文件,基本语法如下: with ...
- json模块 os模块 文件加密
目录 一:random随机模块 二:os模块 三:文件处理选择任意视频 四:sys模块 五:实现文件执行加密操作 六:json 序列化模块 七:json序列化 反序列化 八:json 文件写读方式 九 ...
- (Python )格式化输出、文件操作、json
本节学习Python的格式化输出,文件操作以及json的简单用法 1.格式化输出 将非字符串类型转换成字符串,可以使用函数:str() 或者repr() ,(这两个函数的区别目前我还没搞懂,求解答) ...
随机推荐
- java算法题
1.下面输出结果是什么? public class Test { public static void main(String[] args) { Person person=new Person(& ...
- oracle can't kill session
oracle 在杀会话时,会出现杀不掉的情况. 原因是在回滚大事物 解决方法: alter system disconnect session 'sid, serial#' immediate; ...
- Go的数组
目录 数组 一.数组的定义 1.声明数组 2.初始化设值 3.指定位置设值 4.不指定长度初始化(了解) 二.数组的使用 三.数组的类型 四.数组的长度 五.迭代数组 1.初始化迭代 2.使用rang ...
- 如何理解JavaScript中的函数
转: 如何理解JavaScript中的函数 JS中的函数简介 JS中的函数是一种通过调用来完成具体业务的一段代码块.最核心的目的是将可重复执行的操作进行封装,然后供调用方无限制的调用. JS中的函数的 ...
- HDOJ-1043 Eight(八数码问题+双向bfs+高效记录路径+康拓展开)
bfs搜索加记录路径 HDOJ-1043 主要思路就是使用双向广度优先搜索,找最短路径.然后记录路径,找到结果是打印出来. 使用康拓序列来来实现状态的映射. 打印路径推荐使用vector最后需要使用a ...
- C#无损压缩图片
/// <summary> /// 根据指定尺寸得到按比例缩放的尺寸,返回true表示以更改尺寸 /// </summary> /// <param name=" ...
- C语言中储存类别和内存管理
C语言中储存类别和内存管理 储存类别 C语言提供了多种储存类别供我们使用,并且对应的有对应的内存管理策略,在了解C中的储存类型前,我们先了解一下与储存类型相关的一些概念. 1. 基础概念 对象:不同于 ...
- python学习总结篇(2)——函数
如其他语言一样,除了基本知识外,另外一个重要的板块就是函数了,python中也有函数. 在python中,函数的定义方式为: def 函数名( ): 下面通过几个简单的例子,看看python中的函 ...
- Django 使用 pycharm 创建新的app(可以理解为模块)
创建工程的时候,注意选择Existing interpreter 选择对应的 python 解释器,电脑如果安装有多个版本的 Python 的话,注意python版本的问题, 以上即是创建的项目目录, ...
- iOS 面试秘籍全套
栏目将持续更新--请iOS的小伙伴关注! (答案不唯一,仅供参考,文章最后有福利) iOS面试题大全(上) iOS面试题大全(下) 目录: iOS面试题:Run Loop iOS面试题:性能优化 ...