python2.7
1. 文件的打开(内建函数) open(file_path,mode=‘r’,buffering=-1)
<1> file_path是必须给出的参数,是要读取文件的绝对或者相对路径,要包含文件后缀.
绝对路径的3种表示方法:>>> file_path = "C:/tmp/123.txt" >>> file_path = "C:\\tmp\\123.txt" >>> file_path =r "C:\tmp\123.txt"
相对路径的两种表示方法: ./表示当前文件夹 ../表示父文件夹
文件路径就是一个字符串,所以应该特别注意字符串中包含反斜杠的时候应该如何正确表示。‘\\’真正表示的是‘\’, 修饰符‘r’表示python中的原生字符。
<2>mode 指出了文件的打开方式,具体打开方式有哪些,这里不再累赘。
<3>buffering 参数指出读取文件的时候有关缓冲的选项
buffering = 0 | 表示不适用缓冲 |
buffering = 1 | 缓存一行 |
buffering = 其他正整数N | 缓存N个字节 |
buffering = 负数 | 使用系统默认,根据不同的系统而定 |
<4>open()函数的返回值是一个file object, 我的理解是一个指向文件在内存中的首地址。
2. 文件的关闭(内建函数)close()
为了安全,以及规范,打开文件使用完成后,务必使用close()将文件关闭。
>>> data_file = "E:/tmp/data.txt"
>>> f = open(data_file,'rt')
>>>这里是文件对象的具体操作
>>>f.close()
3. 文件的读操作
open()函数返回一个file objec,这里介绍的操作就是文件对象相关的操作
<1>file.next()
返回file指针位置到最近的一个换行符‘\n’之间的字符(包含file所指的字符以及换行字符)。file所指的位置,没有限制必须为某一行的开始位置。
<2>file.read([size])
最多读取从file所指位置开始的size个字节,意思就是说,如果没有读取够size个字节的数据的的情况下,已经碰到文件结束符EOF了,那么会结束
读取,返回当前所读取到的内容。
*这里有一个小问题,就是用next()方法后,如果使用read(size)会弹错,目前还不知道什么原因。
<3>file.readline([size])
size参数缺省的情况下,返回一整行的数据;
size参数给出的情况下,返回file所在行内,从file开始至多size个字节的数据,即实际返回数据大小 = min{该行file之后的数据大小,size}
<4>file.readlines([size])
size缺省的情况下,读取文件的所有行,并且存放于一个列表对象中。
4. 文件写操作
在进行文件写操作前,请确保文件打开方式,是以可写的方式打开的。
<1>file.write(str)
将目标字符串str写入到文件中,需要时注意的是:由于缓存机制,在文件关闭前,str内容未必真的写入到了文件中. 所以,切记文件的close()操作。
<2>file.writelines(sequence)
将可迭代对象sequence中的内容,依次写入到文件中。经常和readlines()配合使用。
5. 文件指针
<1>file.tell() 返回文件指针的当前位置
<2>file.seek(offset[,whence]) offset:偏移量; whence:相对位置
whence | offset |
0 (文件的开头) | >=0 的整数,如果是负数会报错 |
1(文件指针当前位置) | 如果越界,会报错 |
2(文件末尾) |
一般用负数(使用正数竟然不会报错,不知道为什么) |
mode参数,缺省情况下是"只读"方式