一、文件处理

注意点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模块(容易混淆知识点即用法)的更多相关文章

  1. 数据存储之json文件处理和csv文件处理

    什么是json: JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.它基于 ECMAScript (w3c制定的js规范)的一个子集,采用 ...

  2. python之异常处理和re模块补充

    一.re模块的补充 1.从一个字符串中获取要匹配的内容 findall:返回一个列表 2.search ***** 验证用户输入内容 '^正则规则$':返回一个对象,用group()取值 3.matc ...

  3. python基础之 异常处理和logging模块

    1.异常处理 l = ['apple','admin','kobe'] for id,item in enumerate(l,1): print(id,item) try: choose_id = i ...

  4. Spark2 文件处理和jar包执行

    上传数据文件 mkdir -p data/ml/ hadoop fs -mkdir -p /datafile/wangxiao/ hadoop fs -ls / hadoop fs -put /hom ...

  5. python json模块 超级详解

    JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.JSON的数据格式其实就是python里面的字典格式,里面可以包含方括号括起来的数组,也 ...

  6. Python基础之模块:3、os模块 sys模块 json模块 json实战

    目录 一.os模块 1.创建目录 2.删除目录 3.查看指定路径下目录内容 4.删除/重命名文件 5.获取/切换当前目录 6.动态获取项目根路径 7.拼接/切割路径 8.判断文件.目录是否存在 9.判 ...

  7. Python 第三篇(上):python文件基础操作、json模块、lambda、map、filter、reduce和函数位置参数

    python一切皆对象,linux一切皆文件,python操作文件是很常见的O/I操作,其内置来open()函数可以完成文件的基本操作: 一:使用内置open()函数操作文件,基本语法如下: with ...

  8. json模块 os模块 文件加密

    目录 一:random随机模块 二:os模块 三:文件处理选择任意视频 四:sys模块 五:实现文件执行加密操作 六:json 序列化模块 七:json序列化 反序列化 八:json 文件写读方式 九 ...

  9. (Python )格式化输出、文件操作、json

    本节学习Python的格式化输出,文件操作以及json的简单用法 1.格式化输出 将非字符串类型转换成字符串,可以使用函数:str() 或者repr() ,(这两个函数的区别目前我还没搞懂,求解答) ...

随机推荐

  1. java算法题

    1.下面输出结果是什么? public class Test { public static void main(String[] args) { Person person=new Person(& ...

  2. oracle can't kill session

    oracle 在杀会话时,会出现杀不掉的情况. 原因是在回滚大事物   解决方法: alter system disconnect session 'sid, serial#' immediate; ...

  3. Go的数组

    目录 数组 一.数组的定义 1.声明数组 2.初始化设值 3.指定位置设值 4.不指定长度初始化(了解) 二.数组的使用 三.数组的类型 四.数组的长度 五.迭代数组 1.初始化迭代 2.使用rang ...

  4. 如何理解JavaScript中的函数

    转: 如何理解JavaScript中的函数 JS中的函数简介 JS中的函数是一种通过调用来完成具体业务的一段代码块.最核心的目的是将可重复执行的操作进行封装,然后供调用方无限制的调用. JS中的函数的 ...

  5. HDOJ-1043 Eight(八数码问题+双向bfs+高效记录路径+康拓展开)

    bfs搜索加记录路径 HDOJ-1043 主要思路就是使用双向广度优先搜索,找最短路径.然后记录路径,找到结果是打印出来. 使用康拓序列来来实现状态的映射. 打印路径推荐使用vector最后需要使用a ...

  6. C#无损压缩图片

    /// <summary> /// 根据指定尺寸得到按比例缩放的尺寸,返回true表示以更改尺寸 /// </summary> /// <param name=" ...

  7. C语言中储存类别和内存管理

    C语言中储存类别和内存管理 储存类别 C语言提供了多种储存类别供我们使用,并且对应的有对应的内存管理策略,在了解C中的储存类型前,我们先了解一下与储存类型相关的一些概念. 1. 基础概念 对象:不同于 ...

  8. python学习总结篇(2)——函数

    如其他语言一样,除了基本知识外,另外一个重要的板块就是函数了,python中也有函数. 在python中,函数的定义方式为: def   函数名( ): 下面通过几个简单的例子,看看python中的函 ...

  9. Django 使用 pycharm 创建新的app(可以理解为模块)

    创建工程的时候,注意选择Existing interpreter 选择对应的 python 解释器,电脑如果安装有多个版本的 Python 的话,注意python版本的问题, 以上即是创建的项目目录, ...

  10. iOS 面试秘籍全套

    栏目将持续更新--请iOS的小伙伴关注!   (答案不唯一,仅供参考,文章最后有福利) iOS面试题大全(上) iOS面试题大全(下) 目录: iOS面试题:Run Loop iOS面试题:性能优化 ...