python中的文件操作(2)

a+,w+,r+的特点:

r+:r+模式允许读和写,当对文件句柄只进行写操作时,tell(),seek()为写操作的‘指针’(也就是写到seek()处)。

     当只进行读操作时,tell(),seek()为读操作的‘指针’也就是从seek()处开始)。

  当两者都有时,写操作只能追加(写在文件末尾),但是seek()指针会增加(增加大小为追加的内容的字节数),读操作时,seek()指针也会增加(增加大小为读出的内容的字节数)。seek()只会影响读操作。

f = open('小猪猪大人', 'r+', encoding='utf-8')
print(f.tell())
f.seek(3)
f.write('abccsfvdv哇哈哈啊哇哈哈dsa')
print(f.readline(3))
print(f.tell())
f.seek(f.tell())
f.write('defdsaffa')
print(f.readline(3))
print(f.tell())
f.close()

w+:w+模式允许读和写,当对文件句柄只进行写操作时,tell(),seek()为写操作的‘指针’(也就是写到seek()处)。

     当只进行读操作时,tell(),seek()无作用,w模式会清空所有内容,没有内容可以读。

  当两者都有时,写操作和读操作共同使用seek()和tell()函数。读写都会影响seek指针。seek指针确定读写的位置。

f = open('小猪猪大人', 'w+', encoding='utf-8')
print(f.tell())
f.seek(3)
f.write('abccsfvdv哇哈哈啊哇哈哈dsa')
f.seek(6)
print(f.readline(3))
print(f.tell())
f.seek(3)
f.write('defdsaffa')
# print(f.readline(3))
print(f.tell())

a+:a+模式允许读和写,当对文件句柄只进行写操作时,tell(),seek()影响不大,写操作只能追加,写操作后tell()自动跳到文件尾。

     当只进行读操作时,seek()为读操作的起始指针。读后tell()增大。此时与‘r’模式一样

  当两者都有时,写操作为追加,会将指针指向末尾,读操作时从指针处开始读,指针移动(增加)读出的字节数。

 
原文地址:https://www.cnblogs.com/MY0213/p/7768433.html