Python学习之旅 读书笔记系列
Day 8
《Python编程从入门到实践》
第10章 文件和异常
知识点
- 文件的处理(书本本章内容主要针对文本文件)
- 读取文件
- with open(‘文件名’) as file_object:
- 变量 = file_object.read()
- print(变量.rstrip())
- with 方便在不需要访问时关闭文件,防止异常丢失或受损
- read 方法是读取全部内容
- rstrip 删除末尾空行 (注意文件尾 + print本身,会有两空行)
- '文件名' 可指定相对/绝对文件路径(\)
- 得到的结果均为字符串,如做数值使用,需转换: int()或float()
- 写入文件
- with open(‘文件名’,实参2) as file_object:
- 实参2有4种类型,默认为‘r’
- 'r'(读取),'w'(写入),'a'(附加),'r+'(读取和写入)
- 文件名不存在时,会自动创建
- 当模式为‘w’时,如果文件已存在,则先清空(要特别小心)
- 'a'附件模式时,写入行自动添加到末尾,不覆盖之前内容
- Python只能把字符串写入文本,如果是数值,需转换:str()
- 实参2有4种类型,默认为‘r’
- 写入多行 : 末尾添加换行符 ‘\n’(制表符,空格同理)
- with open(‘文件名’,实参2) as file_object:
- 处理异常
- try-except-else
- try 要放在执行语句前
- except 当出现错误时,执行后面的
- 两种错误: ZeroDivisionError (除0), FileNotFoundError(找不到文件)
- 要学会预测可能出现的错误
- 可用语句提醒输入 / pass 什么都不做(还充当占位符)
- else 后接正常运行语句
- 只要程序依赖外部因素,如输入等,就可以能出现异常
- try-except-else
- 分析文本(获取单词数,只是如何过滤重复的词汇未提及?)
- 方法: 文件名.split() 计算多少个单词
- 以空格为分隔符拆分以便统计
- 存储数据:模块json
- JSON(JaveScript Object Notation),最初由JaveScript开发
- 如果不存储,程序停止用户信息将丢失
- 先 import json
- josn.dump(实参1,实参2) 存储数据
- 实参1:数据
- 实参2:文件名
- 待确定多次使用时是追加还是覆盖?
- josn.load(实参1)
- 实参1:文件名
- 重构
- 把代码划分成一系列完成具体工作的函数
- def 函数() 针对不同功能切分开
其他
- 感受
- 文件读取时,未提及其他文件格式,如excel,后续看另一本书了解
- 要留意Python只能把字符串写如文本,这个要记得按需事先调整格式
- 在写代码时,面对有输入的部分,要尽可能多想可能出现的错误
- 如果还不确定错误应对方式,可用pass作为占位符后续再丰富
- 分析单词时,如何过滤重复值,这个题目自己要进一步思考完成
- 重构的练习只能靠多练习才会有感觉和提高