pthon文件操作
一.文件操作的基本流程
打开文件,得到文件的文件句柄并赋值给一个变量
通过文件句柄对文件进行操作
关闭文件
二.文件编码
f=open(...)是由操作系统打开文件,没有制定文件的编码,打开文件的默认编码就是系统说了算的,就会由系统自己的默认编码去打开文件,windows默认是gbk,linux默认是utf-8
三.文件的打开模式
文件句柄 = open('文件路径','模式')
r , 只读模式 [ 默认模式,文件必须存在,不存在则返回异常报错 ]
w , 只写模式 [ 不可读 , 不存在会创建 , 存在会清空内容 ]
a , 只追加写模式 [ 不可读 , 不存在会创建 , 存在只会追加内容 ]
对非文件的操作则是 rb , wb , ab
对于b模式来说写入时需要提供字节类型
+ 模式
r+ [ 可读 , 可写 ] 读写
a+ [ 可写 , 可读 ] 写读
w+ [ 可写 , 可读 ] 写读
4,以bytes类型操作的读写,写读,写读模式
r+b, 读写【可读,可写】
w+b,写读【可写,可读】
a+b, 写读【可写,可读】
四.文件的操作方法
1.常见的操作方法
1. 文件打开方式为文本模式时,代表读取3个字符
2. 文件打开方式为b模式时,代表读取3个字节
其余的文件内光标移动都是以字节为单位的如:seek,tell,truncate
注意:
1. seek有三种移动方式0,1,2,其中1和2必须在b模式下进行,但无论哪种模式,都是以bytes为单位移动的
2. truncate是截断文件,所以文件的打开方式必须可写,但是不能用w或w+等方式打开,因为那样直接清空文件了,所以truncate要在r+或a或a+等模式下测试效果。
五.文件的修改
文件的数据是存放于硬盘上的,因而只存在覆盖、不存在修改这么一说,我们平时看到的修改文件,都是模拟出来的效果,具体的说有两种实现方式:
1 . 将硬盘存放的该文件的内容全部加载到内存,在内存中是可以修改的,修改完毕后,再由内存覆盖到硬盘(word,vim,nodpad++等编辑器)
2 . 将硬盘存放的该文件的内容一行一行地读入内存,修改完毕就写入新文件,最后用新文件覆盖源文件
浙公网安备 33010602011771号