使用Python同时读取和写入同一个文件

前言

在平时想要使用python修改文件部分内容的时候,常用的做法是使用open函数(默认模式为read)打开一个文件,然后关闭文件,然后再使用write模式去写入更新的内容,最后关闭。这样做非常的不优雅,因为重复打开两次。

根据Pytnon官方文档对open函数给出的解释如下:

官方解释

字符

含意

'r'

读取(默认)

'w'

写入,并先截断文件

'x'

排它性创建,如果文件已存在则失败

'a'

打开文件用于写入,如果文件存在则在末尾追加

'b'

二进制模式

't'

文本模式(默认)

'+'

打开用于更新(读取与写入)

默认模式为 'r' (打开文件用于读取文本,与 'rt' 同义)。'w+''w+b' 模式将打开文件并清空内容。而 'r+''r+b' 模式将打开文件但不清空内容。

最佳解决方案

所以我们可以使用r+模式去同时读写一个文件,但是有另外一个文件,就是读取后指针的位置是落在最后的,我们是更新操作,所以需要调用seek函数将指针打到0的位置。

with open('filepath.txt', mode='r+', encoding='utf-8')as file:
    data = file.read()
    # 在这里编写代码
    file.seek(0)
    file.write(data)
posted @ 2022-10-14 15:21  蠢蛋快跑  阅读(3589)  评论(0)    收藏  举报