python进阶-第二季第一章

第八章:文件操作(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():文本文件中,每一行作为一个字符串存入列表中,返回该列表

猜你喜欢

转载自www.cnblogs.com/jhnnbb/p/11272811.html