博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
文件处理之处理模式及其黑魔法
阅读量:6734 次
发布时间:2019-06-25

本文共 1547 字,大约阅读时间需要 5 分钟。

本节内容


 

1.文件打开格式与编码问题

2.文件处理模式

3.文件的黑魔法

4.文件光标移动方式

 

 

1.文件打开格式与编码问题

文件的打开格式:不加指定模式则默认只读模式,这里需要特殊注意指定编码问题,若不指定,则open函数默认系统的编码,系统的编码就是如果你是windows系统就默认Windows系统的编码

文件有打开就有关闭,若只打开不关闭会占用内存

f = open('文件名' , encoding = 'utf-8')        #f为‘文件变量‘  f.close()

以上打开方式麻烦,还有另一种方式而且还能同时打开多个文件且不用自动关闭文件

with open ('文件名' ,'模式', encoding = 'utf-8') as 文件变量:    文件处理操作...

 

 

2.文件处理模式

 

模式 描述
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

 

 

3.文件的黑魔法

 

文件对象file_obj内置了操作文件的方法,常用的读写方法有:

方法名 含义
file_obj.read() 默认读取文件所有内容。
file_obj.readline() 默认读取一行内容。
file_obj.readlines() 默认读取文件所有行,以列表的形式返回。
file_obj.write(s) 写入内容s。
file_obj.writelines(lines) 将序列lines中的所有元素写入。

 

4.文件光标移动方式

每个文件对象内部都维护一个文件指针,以r或w模式打开文件时指针指向文件开头,以a模式打开文件时指针指向文件末尾,读写操作都是基于上一次指针所在位置的基础上进行偏移的。

我们也可以使用方法file_obj.seek(offset,whence)控制指针的偏移:

  • offset代表偏移量,单位为字节。
  • whence默认值的为0,代表以文件开头为参照物。
  • whence=1则代表以当前位置为参照物。
  • where=2则代表以文件末尾为参照物  (倒序)

 

转载于:https://www.cnblogs.com/echoboy/p/8984849.html

你可能感兴趣的文章
基于MIPS架构的BackTrace实现
查看>>
Sharepoint 2010 Powershell去增加 上传文件类型
查看>>
十进制、十六进制、二进制习题
查看>>
Unity Application Block 发布
查看>>
【java】tomcat 7源码编译及eclipse导入
查看>>
推荐系统实战
查看>>
ASP.NET Web开发框架之八 所有ERP部分的源代码全部开放下载
查看>>
The Activator X for bundle Y is invalid, caused by ClassNotFoundException: X
查看>>
Postgresql:内置数据类型(data type)
查看>>
OFBIZ FTL模板 中文乱码问题
查看>>
交易系统 转
查看>>
Sharepoint学习笔记—ECMAScript对象模型系列--1、ECMAScript对象模型的引入
查看>>
VirtualBox Linux服务vbox-service-template
查看>>
ECSHOP模板在顶部会员信息提示区显示会员等级
查看>>
【上机】《C语言程序设计》第3次上机
查看>>
摘抄一段一位程序员体会
查看>>
Simple Factory Pattern (简单工厂模式)
查看>>
python getopt的使用-天曉-我的搜狐
查看>>
Why All The Lambdas?
查看>>
love2d教程1--最小的love2d程序
查看>>