如何在Python中从文件的当前位置向左移动两个字符?

问题描述 投票:0回答:1

我正在做一个项目,在这个项目中,我必须经常从中间的某个位置编辑一个文件。我想从 "规则 "这个词开始的位置往左走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",然后保存文件。

python-3.x file-handling seek
1个回答
1
投票

我们首先将文件分成几行。- 然后我们从列表中找到 "规则 "所在的索引。从那里--我们将插入我们希望插入的新规则。

然后加入这个列表为 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.

0
投票

如果你只在文件中添加内容,你可以使用append。那么你就不需要专门的行和搜索了。只要做。

with open("file.txt", "a") as fh:
    fh.append("rule101")
© www.soinside.com 2019 - 2024. All rights reserved.