【发布时间】:2021-10-14 13:15:12
【问题描述】:
我有一个格式如下的文本文件,我正在尝试编辑/更新文件中的文本。
VAR_GROUP
Var1 : DATATYPE1;(描述 Var1)
Var2 : DATATYPE2;(此处添加文字)
Var3 : DATATYPE3;(描述 Var3)
Var4 : DATATYPE4;(此处添加文字)
END_GROUP
我正在尝试使用 Python 添加某些描述,例如 Var3 和 Var4。使用我编写的代码,逻辑工作正常,但文本被添加到文件的末尾,而不是在所需的位置。
def search_write_in_file(file_name, string_to_search, description):
with open(file_name, 'r+') as file_obj:
# Read all lines in the file
for line in file_obj:
# For each line, check if line contains the string
line_number += 1
if (string_to_search in line) and flag_found == 0:
line = line[:-1]+description+'\n'
file_obj.write(line)
flag_found =1
read_obj.close()
电流输出
VAR_GROUP
Var1 : DATATYPE1;(描述 Var)
Var2 : DATATYPE2;
Var3 : DATATYPE3;(描述 Var3)
Var4 : DATATYPE4;
END_GROUP
Var1 : DATATYPE1;(描述 Var1)
Var2 : DATATYPE2;(描述 Var2)
Var3 : DATATYPE3;(描述 Var3)
Var4 : DATATYPE4;(描述 Var4)
没有编辑提到的特定位置,而是在最后添加的可能原因是什么。提前致谢。
【问题讨论】:
-
这能回答你的问题吗? How to modify a text file?
-
感谢您的建议。在发布我的问题之前,我查看了上述解决方案。这是否意味着如果不将文件内容复制到新文件中就无法编辑文件?
-
是的,您必须执行读/写循环才能修改文件的某些部分。如果你想避免复制,你可以用你修改过的文件覆盖旧文件。
标签: python python-3.x file-writing