我正在做一个项目,在这个项目中,我必须经常从中间的某个位置编辑一个文件。我想从 "规则 "这个词开始的位置往左走2个字符。
我试过这样的方法。
with open("file.txt", "r+") as fh:
content = fh.read()
index = content.seek("rules") - 2
但它把我带到了两行,而不是回到两个字符的位置。
这就是文件的样子。
rule1
rule2
rule3
rule4
.
.
.
.
rule100
rules are very good.
基本上,这是文件的最后一行,以 "规则 "开头 我想从 "规则100 "开头的那行末尾开始,写一行新的 "规则101",然后保存文件。
我们首先将文件分成几行。- 然后我们从列表中找到 "规则 "所在的索引。从那里--我们将插入我们希望插入的新规则。
然后加入这个列表为 updated_content
.
然后我们寻找文件的开头,并用 updated_content
with open("text.txt", "r+") as fh:
content = fh.read().splitlines()
rulesIndex = content.index("rules are very good.")
content.insert(rulesIndex - 1, "rule101")
updated_content = "\n".join(content)
fh.seek(0)
fh.write(updated_content)
之前
rule1
rule2
rule3
rule4
.
.
.
.
rule100
rules are very good.
之后
rule1
rule2
rule3
rule4
.
.
.
.
rule100
rule101
rules are very good.
如果你只在文件中添加内容,你可以使用append。那么你就不需要专门的行和搜索了。只要做。
with open("file.txt", "a") as fh:
fh.append("rule101")