美文网首页
day12 - 文件操作(总结)

day12 - 文件操作(总结)

作者: 未醒的梦_19b0 | 来源:发表于2018-11-20 17:54 被阅读0次

1.recode

1.1.生成式(生成式的结果就是一个生成器)

(表达式 for 变量 in 序列)
def func1():
    for 变量 in 序列:
        yield 表达式
(表达式 for 变量 in 序列 if 条件语句)
def func1():
    for 变量 in 序列:
        if 条件语句:
            yield 表达式

1.2.模块和包
模块:一个py文件就是一个模块
包:一个带有__init__.py文件的文件夹
import
from - import
1.3.文件操作
open(文件路径,打开方式,encoding=编码方式)
'r' - 读出来的是字符串
'w' - 写字符串到文件中
'br' - 读出来的是字节(二进制)
'bw' - 写二进制数据到文件中
'a' - 写,追加(写字符串到文件中)
编码方式 - 文本文件的编码方式(utf-8,gbk)
f.read()
f.readline()
f.readlines()
f.write()
f.close()

with open(文件路径,打开方式,encoding=编码方式) as f :
    文件操作

2.json数据

json文件(必须掌握)
2.1.什么是json数据
json是一种数据格式,满足json数据格式的数据就是json数据,
文件后缀.json,并且文件中的内容满足json格式
2.2.json格式
a.一个json中只有一个数据,并且这个数据是json支持的数据类型的数据
b.json支持的数据类型
数字类型 - 包含所有的数字,包括整数和小数,例如:100,12.3,-10
字符串 - 使用双引号括起来的字符集,例如:"erw321"
布尔 - true和false 首字符都是小写
数组 - 相当于python中的列表,使用中括号括起来,括号里面是json支持的任意类型的数据,例如["ab",[1,2]]
字典 - 相当于python中的字典,使用大括号括起来,括号里面是键值对,
键一般是字符串,值是json支持的任意数据
特殊值 - null(相当于pyton中的None),表示空
2.3.python中有一个内置的模块用来支持对json数据的处理,这个模块就叫json
a.将json数据转换成python数据
b.将python数据转换成json数据
import json
a.1.将json数据转换成python数据
loads(字符串) - 将json格式的数据转换成python对应的数据
注意:这儿的字符串的内容必须是json格式的数据

json       python
数字        整型/浮点型
字符串      字符串(双引号会变成单引号)
布尔        布尔(首字母从小写变成大写)
数组        列表
字典        字典
null       None
json.loads('100')
json.loads('"abc"')
json.loads('[1,2,3,"abd",true]')
py5 = json.loads('[100,"abc",true,null]')
print(py5)
py6 = json.loads('{"a":1,"b":2,"c":3}')
print(py6)
with open('123.json', encoding='utf-8') as f:
    content = f.read()
py7 = json.loads(content)
print(py7['data'][2]['age'])

b.1.将python数据转换成json数据

json.dumps(数据) - 将python数据转换成内容符合json格式的字符串
注意:最终结果是字符串
python            json
int/float         数字
字符串             字符串(单引号会变双引号)
布尔               布尔(首字母大写变小写)
列表/元组           数组
字典               字典

b.2.json文件操作相关方法

json.load(文件对象) - 将文件对象中的数据读出来,并且转换成python对应的要求
                    (文件对象中的内容必须是json格式的数据)
json.dump(数据,文件对象) - 将python数据转换成json格式的字符串再写入文件对象中

3.异常捕获

3.1.什么是异常
程序执行过程中出现错误,也就是出现异常
3.2.异常捕获
让本来会出现异常的位置,不出现异常,而是自己去处理异常出现的情况
3.3.怎么捕获异常

方法一:捕获所有的异常
a.语法:
try:
    需要捕获异常的代码段1
except:
    代码段2
执行过程:执行代码段1,如果代码段1中出现异常,不会崩溃,而是马上执行代码段2,
        如果代码段1没有异常,不会执行代码段2
方法2:
b.捕获指定的异常
语法:
try:
    代码段1
except 错误类型名:
    代码段2
执行过程:执行代码段1,当代码段1出现指定的异常后不崩溃,而是执行代码段2
c.同时捕获多个异常,对不同的异常做出相同的反应
try:
    代码段1
except(错误类型1,错误类型2,错误类型3,...):
    代码段2
执行过程:执行代码段1,当代码段1中出现了指定的异常,执行代码段2不崩溃,然后执行代码段2
d.同时捕获多个异常,多不同的异常做出不同的反应
try:
    代码段1
except 错误类型1:
    代码段2
except 错误类型2:
    代码段3
except 错误类型3:
    代码段4
try:
    print('+++++')
    print([1,2,3][10])
    print('=====')
except:
    print('出现异常')
try:
    print(int('abc'))
    print('----')
except ValueError:
    print('下标越界')
try:
    print([1, 2][3])
except (IndexError,KeyError,ValueError,FileNotFoundError,StopIteration):
    print('出现多种异常中的一个')

3.4.try - except - finally

try:
    代码段1
except:
    代码段2
finally:
    代码段3

不管代码段1中是否出现异常,也不管异常是否捕获到,finally后面的代码段3都会执行(写遗书的位置)
什么时候有异常捕获
明明知道某段代码可能会出现异常,但是又没有办法避免,就使用异常捕获

4.抛出异常

抛出异常:主动让程序出现异常

语法:
raise 错误类型 - 程序执行到raise的时候执行抛出异常
注意:错误类型必须是一个类,并且这个类是Exception的子类

相关文章

  • 19-01-09recode

    day12总结文件操作,数据持久化 1.打开文件 -> 操作文件 -> 关闭文件文件对象 = open(...

  • day12 - 文件操作(总结)

    1.recode 1.1.生成式(生成式的结果就是一个生成器) 1.2.模块和包模块:一个py文件就是一个模块包:...

  • Day12 文件操作

    一.文件操作 1.数据持久化(数据本地化) 保存在程序中的数据是保存在运行内存中的, 当程序运行结束, 内存会自动...

  • Gradle-Groovy 对 XML,JSON 以及文件的操作

    # Groovy 文件 对 JSON 的操作; 对 XML 的操作; 对普通文件的操作; 总结; ## 对 JSO...

  • day12 file文件操作

    1.数据本地化和数据持久化将数据以文件的形式存到计算机硬盘中(在程序中保存的数据,当程序运行结束后会自动销毁)2....

  • day11_python_文件操作与异常捕获

    总结 一.文件操作 1.基本过程:打开文件 - 操作 - 关闭文件 2.open(路径,打开方式,encoding...

  • 2018-09-03 day11-文件操作和异常捕获

    总结 一.文件操作 1.基本过程:打开文件 - 操作 - 关闭文件 2.open(路径,打开方式,encoding...

  • android 读写文件

    title: android 读写文件 基本知识参照博客 Android - 文件读写操作 总结

  • Vim文件操作常用技巧

    Vim文件操作从同时操作多个文件和打开和保存文件两个方面进行总结。 (一)Vim同时操作多个文件 一个文件夹下有v...

  • Day12学习总结-文件

    1.什么是生成式 生成式就是生成器的一种特殊写法 2.写法 a. 生成器 = (表达式 for 变量 in 序列)...

网友评论

      本文标题:day12 - 文件操作(总结)

      本文链接:https://www.haomeiwen.com/subject/vzvxqqtx.html