第八章:文件操作(IO)技术
116.写入文件,文件底层关系
一:简介
1.一个完整的程序一般都包括存储和读取,如果没有执行实际的存储python执行完操作数据就消失了。实际开发中我们经常需要从外部存储介质(硬盘,光盘,U盘等)读取数据或者将程序产生的数据存储到文件中实现“持久化”保存。
2.很多文件系统是将数据存储数据库中,数据其实也是基于文件形式存储的
3.远程服务器读取也称为IO,数据库读取文件也是IO(IO为输入和输出技术)
二.文本文件和二进制文件
按照文件数据组织形式。我们把文件分为文本文件和二进制文件两大类。
1.文本文件:文本文件是普通的‘字符’文本,python默认unicode字符集(两个字节表示一个字符,最多可以表示:65536个字节),可以使用记事本程序打开。但是像word编辑的文档将不是文本文件。
2.二进制文件:二进制的内容把数据的‘字节‘’进行储存,无法用记事本打开。必须使用专业的文件解码常见的有:MP4,MP3,jpg图片,doc文档等。
三.文件操作相关概述
四.创建文件对象open()
1.open函数用于创建文件对象,基本语法:open(文件名【,打开方式】)
如果只是文件名,代表当前目录下的文件。文件名可以录入全路径,例如:D:\a\b.txt
为了减少“\”的输入可以使用原始字符串:r“d:\b.txt”
例如:f=open(r"b.txt","a") 文本文件
f=open(r"b.jpg","ba") 二进制文件
2.打开方式有以下几种:
3.文本文件和二进制文件对象的创建
如果我们没有增加模式“b”,则默认的创建时文本文件对象,处理的基本单元是“字符”。
如果是二进制模式“b”,则创建的是二进制模式,处理的基本单元是“字节”
4.python代码写入硬盘图解(os:操作系统),处理完数据一定要关闭,否则浪费系统资源。
如下代码:
#coding:utf-8
#创建-写入-关闭
f= open(r"a.txt","a" )
s = ‘aa上啊‘
f.write(s)
f.close()
4.write()/writelines()写入数据
write(a)是把字符a写入到文件中
writelines(b)是把字符串列表写入文件中,不添加换行符
例如:
117.编码知识,中文乱码问题解决
绘图软件:processon
1 .常用编码介绍
2.中文乱码问题
windows操作系统的默认编码是GBK,linux的默认操作编码是UTF-8
如果用的Windows系统默认gbk编码,可以再写的时候加入:encoding=“utf-8” 例如:
#coding:utf-8
#创建-写入-关闭
f= open(r"a.txt","a",encoding=‘utf-8‘ )
s = ‘aa上啊‘
f.write(s)
f.close()
118.关闭流要点1_try异常管理
1.close()关闭文件流
由于文件底层是由操作系统控制,所以我们打开文件时必须显示调用close()关闭文件对象。当调用close()方法时,首先会把缓冲区数据写入文件(也可直接调用flush()方法)在关闭文件,释放文件对象。
2.为了确保打开文件对象正常关闭,一般结合异常机制的finally或with关键字实现,无论何种情况都能关闭打开的文件对象
3.操作
4.python所有的标准异常类:
异常名称 | 描述 |
---|---|
BaseException | 所有异常的基类 |
SystemExit | 解释器请求退出 |
KeyboardInterrupt | 用户中断执行(通常是输入^C) |
Exception | 常规错误的基类 |
StopIteration | 迭代器没有更多的值 |
GeneratorExit | 生成器(generator)发生异常来通知退出 |
SystemExit | Python 解释器请求退出 |
StandardError | 所有的内建标准异常的基类 |
ArithmeticError | 所有数值计算错误的基类 |
FloatingPointError | 浮点计算错误 |
OverflowError | 数值运算超出最大限制 |
ZeroDivisionError | 除(或取模)零 (所有数据类型) |
AssertionError | 断言语句失败 |
AttributeError | 对象没有这个属性 |
EOFError | 没有内建输入,到达EOF 标记 |
EnvironmentError | 操作系统错误的基类 |
IOError | 输入/输出操作失败 |
OSError | 操作系统错误 |
WindowsError | 系统调用失败 |
ImportError | 导入模块/对象失败 |
KeyboardInterrupt | 用户中断执行(通常是输入^C) |
LookupError | 无效数据查询的基类 |
IndexError | 序列中没有没有此索引(index) |
KeyError | 映射中没有这个键 |
MemoryError | 内存溢出错误(对于Python 解释器不是致命的) |
NameError | 未声明/初始化对象 (没有属性) |
UnboundLocalError | 访问未初始化的本地变量 |
ReferenceError | 弱引用(Weak reference)试图访问已经垃圾回收了的对象 |
RuntimeError | 一般的运行时错误 |
NotImplementedError | 尚未实现的方法 |
SyntaxError | Python 语法错误 |
IndentationError | 缩进错误 |
TabError | Tab 和空格混用 |
SystemError | 一般的解释器系统错误 |
TypeError | 对类型无效的操作 |
ValueError | 传入无效的参数 |
UnicodeError | Unicode 相关的错误 |
UnicodeDecodeError | Unicode 解码时的错误 |
UnicodeEncodeError | Unicode 编码时错误 |
UnicodeTranslateError | Unicode 转换时错误 |
Warning | 警告的基类 |
DeprecationWarning | 关于被弃用的特征的警告 |
FutureWarning | 关于构造将来语义会有改变的警告 |
OverflowWarning | 旧的关于自动提升为长整型(long)的警告 |
PendingDeprecationWarning | 关于特性将会被废弃的警告 |
RuntimeWarning | 可疑的运行时行为(runtime behavior)的警告 |
SyntaxWarning | 可疑的语法的警告 |
UserWarning | 用户代码生成的警告 |
119.关闭流要点with上下文管理
1.with语句(上下文管理)
with关键字,可以自动管理上下文资源,不论什么原因跳出with块,都能确保文件正确关闭,并且可以在代码执行完毕之后自动还原进入代码块时的现场。
2.操作:
open () as f 打开一个文件作为一个f对象来引用。
120.文本文件的读取
一.文件的读取有以下三个方法:
1.read([size]):从文件中读取size个字符,并作为结果返回。如果没有size参数,则读取整个文件。读取到文件末尾,会返回空字符串。
2.readline():读取一行内容作为返回结果。读取到文件末尾,会返回空字符串。
3.readlines():文本文件中,每一行作为一个字符串存入列表中,返回该列表
原文:https://www.cnblogs.com/jhnnbb/p/11272811.html