在学习python文件读写的时候,因为教程是针对python2的,而使用的是python3。想要利用file类时,类库里找不到,重装了python2还是使不了。在别人园子认真拜读了《详解python2和python3区别》(已收藏)之后,才发现python3已经去掉file类。
现在利用python进行文件读写的方法更加类似于C语言的文件读写操作。
如今总结如下:
一 打开文件—— f = open('poem.txt','x+'):
读过open的帮助文档,然后自己翻译了一下,现给大家分享一些摘抄注释:
1 open(...)的作用:打开文件并返回一个数据流。打开出错则返回IOError。
2 打开文件的方法:可通过文件名(如果不在当前目录下,则提供路径)来打开文本或比特流(即文件)或者包装一个整型文件描述符(??英文是integer file descriptor,存疑)。
3 打开文件的模式:默认打开文件的方式是'rt'
字母 含义
--------- ---------------------------------------------------------------
'r' 只读模式打开 (默认模式)
'w' 只写模式打开,首先截断文件(??什么是截断文件?存疑。)
'x' 新建文件并打开(如果文件已经存在,则产生一个FileExistsError错误)
'a' 读文件,如果文件存在,在文件尾进行追加
'b' 二进制读写模式
't' 文本读写模式(默认)
'+' 打开一个磁盘文件用于更新 (进行读写操作)
'U' 通用换行模式 (不赞成使用,newline的值可以是None, '', '\n', '\r', 和 '\r\n')
========= ===============================================================
4 open(...)使用方法:
file = open(file, mode='r', buffering=-1, encoding=None,errors=None, newline=None, closefd=True, opener=None)
(后六个参数可选)
二 关闭文件—— f.close( )
使用open打开文件后一定要记得调用文件对象的close()方法。
可以直接调用close()关闭文件。
也可以用try/finally语句来确保最后能关闭文件。(参考资料:http://jingyan.baidu.com/article/aa6a2c14d54f7f0d4c19c487.html)
file_object = open('thefile.txt')
try:
all_the_text = file_object.read( )
finally:
file_object.close( )
注:不能把open语句放在try块里,因为当打开文件出现异常时,文件对象file_object无法执行close()方法。
三 读文件—— file.read(size)
1 file.read(n) 指定参数,读取从当前位置之后n个字符或字节
2 file.read() 不指定参数,读取整个文件
3 file.readline() 读取一行字符串,这个字符串是以一个行结束符'\n'为结束的,如果它返回了一个空字符串,说明已经到了文件的结尾,如果返回一个'\n',则说明是一个空行。
4 file.readlines() 读取文件中的每一行,每行字符组成一个字符串。如果要读取文件的所有行,则可以使用list(f)函数或者f.readlines()。
四 写文件——file.write()
file.write(string)会将string的内容写入到文件中,返回一个数值,是写入的字符的个数。如果要把其他对象写入到文件中,要先将其转换为字符串。
五 文件读取指针的位置
file.tell()会返回当前文件读写指针的位置,如果是用二进制打开的,则这个位置表示从文件头开始到当前位置的字节数,如果是在文本模式,则这个位置的含义就比较模糊了。
为了改变文件的读写指针的位置,可以使用file.seek(offset,from_what)函数,这个函数会从某个位置加上offset值。from_what值有三个,0表示从文件头开始,1表示从当前位置开始,2表示从文件末尾开始。默认值是0.