前言
在平时想要使用python
修改文件部分内容的时候,常用的做法是使用open
函数(默认模式为read
)打开一个文件,然后关闭文件,然后再使用write
模式去写入更新的内容,最后关闭。这样做非常的不优雅,因为重复打开两次。
根据Pytnon
官方文档对open
函数给出的解释如下:
官方解释
字符 |
含意 |
---|---|
|
读取(默认) |
|
写入,并先截断文件 |
|
排它性创建,如果文件已存在则失败 |
|
打开文件用于写入,如果文件存在则在末尾追加 |
|
二进制模式 |
|
文本模式(默认) |
|
打开用于更新(读取与写入) |
默认模式为 '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)
标签:文件,读取,Python,写入,模式,file,打开
From: https://www.cnblogs.com/huanghongzhe/p/16791713.html