一般操作文件时,要么是读取其中的内容,要么是往里面写入新内容,但偶尔也会需要同时进行读写。
Python内置函数在操作文本文件和自定义二进制文件时比较方便,该函数语法为:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
其中比较常用的参数有:1)file用来指定要操作的文件路径,如果文件不在当前文件夹,建议在写文件路径时使用原始字符串;2)encoding用来指定操作文本文件时使用的编码格式,在Windows平台上默认为cp936;3)mode用来指定打开模式,默认为读取文本文件,可能的取值范围和含义如下:
mode参数的这些取值可以组合使用,例如读取二进制文件时使用rb,写入二进制文件可以使用wb。这里需要注意的几个细节有:1)r、w、x以及这几个模式衍生的模式,打开文件时文件指针位于文件头;而a、ab、a+这样的模式,打开文件时文件指针位于文件尾。2)w和x都是写模式,在目标文件不存在时是一样的,但如果目标文件已存在的话w模式会清空原有内容而x模式会抛出异常。
如果需要同时进行读写,不是使用rw模式,而是使用r+、w+或a+的组合方式(或对应的rb+、wb+、ab+)打开,其中r+要求文件已存在。
打开文件之后,read()、readline()和write()等方法都是从文件指针的当前位置进行读写,并且,文件指针的位置会随着读写而自动变化。例如,以r模式打开文件之后,文件指针在文件头,使用read(5)读取5个字符之后,文件指针自动移动到第6个字符的位置,再使用read()方法读取时是从当前位置(也就是第6个字符的位置)开始读。在需要时可以使用文件对象的seek()方法调整文件指针的位置。
文件对象的seek()方法使用方法如下,其中偏移量的单位为字节,即使是以文本文件的模式打开文件。
下面的代码演示了seek()方法的用法,首先创建新文件,然后写入内容,再重新定位文件指针并修改其中的部分内容或者读取其中的内容:
温馨提示
关注本公众号“Python小屋”,通过菜单“最新资源”==>“历史文章”可以快速查看分专题的800篇技术文章列表,通过“最新资源”==>“微课专区”可以免费观看300节Python微课,通过“最新资源”==>“培训动态”可以查看近期Python培训安排,通过“最新资源”==>“教学资源”可以查看Python教学资源。
--------董付国老师Python系列图书--------
1)《Python程序设计(第2版)》清华大学出版社
2)《Python可以这样学》清华大学出版社
3)《Python程序设计基础(第2版)》清华大学出版社
4)《中学生可以这样学Python》清华大学出版社,配套微课:《中学生可以这样学Python》84节微课免费观看地址
5)《Python程序设计开发宝典》清华大学出版社
6)《玩转Python轻松过二级》清华大学出版社
7)《Python程序设计基础与应用》机械工业出版社
8)《Python程序设计实验指导书》清华大学出版社
9)《Python编程基础与案例集锦(中学版)》电子工业出版社
“Python小屋”免费资源汇总(截至2018年11月28日)
系列教学PPT:
1900页Python系列PPT分享一:基础知识(106页)
1900页Python系列PPT分享二:Python序列(列表、元组、字典、集合)(154页)
1900页Python系列PPT分享三:选择与循环结构语法及案例(96页)
1900页Python系列PPT分享四:字符串与正则表达式(109页)
1900页Python系列PPT分享五:函数设计与应用(134页)
1900页Python系列PPT分享六:面向对象程序设计(86页)
1900页Python系列PPT分享七:文件操作(132页)
1900页Python系列PPT分享八:异常处理结构与程序调试、测试(70页)
报告PPT(163页):基于Python语言的课程群建设探讨与实践
2000页Python系列PPT分享九:(GUI编程)(122页)