按给定位置在文件中替换字符串

2 投票
2 回答
1821 浏览
提问于 2025-04-15 15:12

我有一个文件是以 'ab+' 模式打开的。

我需要做的是把文件中的一些字节替换成另一个字符串的字节,具体来说:

文件内容:

thisissomethingasperfectlygood.

字符串:

01234

举个例子,我想在位置 (4, 0) 替换掉文件中的 "issom",把它改成 "01234"。最后的结果应该是:

this01234ethingasperfectlygood

网上有一些解决方案,但我找到的都是先在文件中找到一个字符串,然后再用另一个字符串替换的方式。因为我的情况是基于位置查找的,所以我对解决方案感到困惑。

2 个回答

2

你可以使用mmap()来映射你的文件,然后通过切片的方式来更新文件中的特定字节范围。这里有一个例子 可以参考

3

你可以用mmap来实现这个功能。

import os,mmap
f=os.open("afile",os.O_RDWR)
m=mmap.mmap(f,0)
m[4:9]="01234"
os.close(f)

撰写回答