对文件操作: 对文件操作就是对文件的句柄的操作,通过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)可以查看效果区别。