第一种用法:如果我们对文件进行写操作,则默认会从第一行开始写,且直接覆盖第一行的内容
[root@localhost ~]$ cat 1.txt # 文件内容如下
aaa
bbb
ccc
In [1]: data = open('1.txt', 'r+') # 以读写模式打开,并写入'ddd'
In [2]: data.write('ddd')
In [3]: data.close()
[root@localhost ~]$ cat 1.txt # 可以看到'ddd'覆盖写入了第一行 ddd bbb ccc
第二种用法:先把文件内容读出来,再进行写操作,写入就会在文本后面追加,而不是从头覆盖原始内容了
[root@localhost ~]$ cat 1.txt # 文件内容如下 aaa bbb ccc
In [1]: data = open('1.txt', 'r+') # 以读写模式打开文件 In [2]: data.read() # 先把文件内容读出来,如果使用read(),则文件指针就指到最后 Out[2]: 'aaa\nbbb\nccc\n' In [3]: data.write('ddd\n') # 再进行写操作,就是从指针的位置开始写入了 In [4]: data.close() # 同理,如果使用readline()或readlines(),文件指针的位置也不一样
[root@localhost ~]$ cat 1.txt # 可以看到写入到最后一行了 aaa bbb ccc ddd