如何从 Python 文件中的当前位置左移两个字符?
How do I go two characters left from the current position in file in Python?
我正在做一个项目,在其中我必须经常从中心某处的位置编辑文件。我想转到单词 'rules' 开始的位置左侧的 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.
所以,基本上它是以 'rules' 开头的文件的最后一行,我想在以 'rule100' 开头的行的末尾写一个新行将是 'rule101' 并保存文件。
我们首先将文件拆分成行。
- 然后我们将从列表中找到 "rules" 的索引。
从那里 - 我们将插入我们希望插入的新规则。
然后以 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.
如果您只向文件添加内容,您可以使用追加。那么你就不需要专门的线路并搜索它了。只是做:
with open("file.txt", "a") as fh:
fh.append("rule101")
我正在做一个项目,在其中我必须经常从中心某处的位置编辑文件。我想转到单词 'rules' 开始的位置左侧的 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.
所以,基本上它是以 'rules' 开头的文件的最后一行,我想在以 'rule100' 开头的行的末尾写一个新行将是 'rule101' 并保存文件。
我们首先将文件拆分成行。
- 然后我们将从列表中找到 "rules" 的索引。
从那里 - 我们将插入我们希望插入的新规则。
然后以 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.
如果您只向文件添加内容,您可以使用追加。那么你就不需要专门的线路并搜索它了。只是做:
with open("file.txt", "a") as fh:
fh.append("rule101")