十三 —— 文件读写

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关键字可以保证文件被正常关闭。


原文地址:https://www.cnblogs.com/KeenaCherry/p/12078769.html