day12 - 文件操作(总结)

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的子类
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容

  • 一、快捷键 ctr+b 执行ctr+/ 单行注释ctr+c ...
    o_8319阅读 5,779评论 2 16
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 31,894评论 2 89
  • 嘿!妈妈 流泪的双眼愈加明亮 洗一洗尘土 照一照阳光 我愿你双眼清澈如水 盛着桃花笑靥 荡着涟漪圈圈 现在总是愁云...
    野派阅读 152评论 0 1
  • 井底蛙在遇到飞鸟之前,一直在井底生活的好好的,自我感觉还不错,对生活中的一切,知足感恩,因愚昧而快乐。 但是在遇到...
    嘘_别问我是谁阅读 780评论 0 8
  • 1.分别给User表和comments配置别名:User::from('user as u')->join('co...
    金星show阅读 1,834评论 0 1