4.文件操作

对文件操作:
  对文件操作就是对文件的句柄的操作,通过open函数得到文件的句柄。
一:r,w,a,x,模式
  r: 只有读操作,文件必须存在。读的时候默认光标在最开始读,没有写操作,      encoding在进行解码操作。
  w:无法读取文件,只是写操作,文件存在覆盖写,文件不存在的话,创建文件再写。encoding在进行编码操作。
  a:无法读取文件,只是写操作,文件存在追加写,文件不存在的话,创建文件再写。    encoding在进行编码操作。。
  x:无法读取文件,只是写操作,文件存在的话不会覆盖,会报错。文件不存在的话,创建文件再写。encoding在进行编码操作。
二:
  可读可写模式:  r+,w+,a+模式
r+:读:如果直接读,默认从最开始读取文件。同r模式。
   写:如果直接写会覆盖写,先读再写会追加写,根据光标位置进行写操作,写完光标在最后,如果读取文件需要seek进行调整。
   注:文件必须存在,才能进行读写操作!
 
w+:读:能读但是无法直接读,运行直接覆盖成空文件且光标在最后,所以读取不到东西。
   写:覆盖写。文件存在覆盖写,文件不存在的话,创建文件再写。写完光标在最后,读取文件需要seek进行调整。
   注:读和写时如果文件不存在会创建文件再操作。
 
a+:读:能读,运行直接把光标放到最后,需要seek调整光标位置进行读取。
   写:光标永远在文件最后位置,但是不管光标位置在哪一定是追加写(注意和r+区别)。写完光标在最后,读取文件需要seek进行调整。
   注:读和写情况时如果文件不存在会创建文件再操作。
注意点:
   seek调整是按照字节移动的,seek()默认从最开始0位置,seek(1,1)1是当前位置,seek(-3,2)2是最后开始,如果向查看的会必须转化成字节模式,然后再decode成明文。
   read是按字符移动的。
   tell()  是显示当前光标位置。
   flush跟close作用一样,  是实时刷新操作,而close是程序操作完成后刷新操作。通过import time/time.sleep(10)可以查看效果区别。

  

原文地址:https://www.cnblogs.com/mrpengfei/p/6682487.html