f = open(filename, mode)
filename: 文件路径
mode: 打开文件的模式, 默认只读 r.
打开模式分为如下:
a,r -- 只读. 默认模式, 如果文件不存在就报错, 存在就正常读取
b,w -- 只写. 如果文件不存在, 新建文件然后写入; 若存在, 先清空文件内容, 再写入.
c,a -- 追加. 如果文件不存在, 新建文件, 然后写入; 如果存在, 在文件的最后追加写入.
d,x -- 新建. 如果存在则报错, 如果不存在就新建文件, 然后写入内容, 比 w 模式更安全.
e,b -- 二进制模式. 比如 rb,wb,ab, 以 bytes 类型操作数据.
f,+ -- 读写模式. 比如 r+,w+,a+
文件读取时, read(),readline(),readlines() 的区别:
1,f.read(size)
读取一定大小的数据, size 为数据时, 用于指定读取量. 若无 size, 则一次性读取所有文件内容.
2,f.readline()
从文件中读取一行内容, 这种方法, 不可回头, 读过的不能再读了.
3,f.readlines()
一次性读取整个文件内容, 不同于 read() 的是, 他返回的是 list, 方便我们遍历哦
注: 一般小文件用 read(), 大文件就用 readlines()
4,f.write
将数据写入文件内, 文件进行写入时, 若没执行 close() 方法, 则所有的操作都在内容中操作. 要立刻把写入操作反应到本地硬盘时, 则使用 clush(), 不过这容易造成数据不一致, 慎用!!!
5,f.tell()
返回文件读写指针当前所处的位置, 它是从文件开头开始算起的字节数.
6,f.seek()
如果要改变位置指针的位置, 可以使用 f.seek(offset,from_what) 方法. seek() 经常和 tell() 方法配合使用.
offset 表示偏移量. from_what 的值, 如果是 0 表示从文件开头计算, 如果是 1 表示从文件读写指针的当前位置开始计算, 2 表示从文件的结尾开始计算, 默认为 0.
seek(x,0): 从起始位置即文件首行首字符开始移动 x 个字符.
seek(x,1): 表示从当前位置往后移动 x 个字符.
seek(-x,2): 表示从文件的结尾往前移动 x 个字符.
7,f.close()
关闭文件对象. 当处理完一个文件后, 调用 f.close() 来关闭文件并释放系统的资源. 文件关闭后, 如果尝试再次调用该文件对象, 则会抛出异常. 忘记调用 close() 的后果是数据可能只写了一部分到磁盘, 剩下的丢失了, 或者更糟糕的结果.
with 关键字用于 python 的上下文管理器机制
为了防止打开文件, 在操作过程中出现异常 / 错误 / 忘记执行 close() 方法, 文件非正常关闭等可能导致文件泄露, 破坏的问题. python 的 with 关键字可以保证文件被正常关闭.
来源: http://www.bubuko.com/infodetail-3343809.html