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 . 将硬盘存放的该文件的内容一行一行地读入内存,修改完毕就写入新文件,最后用新文件覆盖源文件

 

posted @ 2019-03-16 15:25  似曾相见  阅读(86)  评论(0)    收藏  举报