lea*_*erX 5 python seek file-writing python-3.x
我用 Python 编写了一个代码,它遍历文件,提取所有数字,将它们相加。我现在必须在文件中的特定位置写下“总计”(一个整数)something something something...Total: __00__ something something。
我必须在Total: __部分之后写出我计算的总数,这意味着结果行将更改为,例如:something something something...Total: __35__ something something。
到目前为止,我在写部分有这个:
import re
f1 = open("filename.txt", 'r+')
for line in f1:
if '__' in line and 'Total:' in line:
location = re.search(r'__', line)
print(location)
Run Code Online (Sandbox Code Playgroud)
这打印出来: <_sre.SRE_Match object; span=(21, 23), match='__'>
所以它在位置 21 到 23 处找到了“__”,这意味着我想在位置 24 处插入总数。我知道我必须以某种方式使用该seek()方法来做到这一点。但是我试过几次都失败了。任何建议,将不胜感激。
重要提示:文件的原始内容将按原样保留。只有总的变化——没有别的。
如果文件不是特别大,您可以将其内容作为字符串(或行列表)读取到内存中,进行替换并将内容写回。像这样的东西:
total = 'Total: __{}__'.format(12345)
with open(filename, 'r+') as f:
contents = f.read().replace('Total: __00__', total)
f.seek(0)
f.truncate()
f.write(contents)
Run Code Online (Sandbox Code Playgroud)