如何读取文本文件中的行并替换Python中的整行?
如果有一行以“truck_placement”开头,我想替换文本文档中的整行 当包含“truck_placement”时,是否可以删除整行内容,然后写入新文本 我试过了,但它只插入了新的文本,并没有替换整行 这就是当前的代码:如何读取文本文件中的行并替换Python中的整行?,python,python-3.x,tkinter,replace,Python,Python 3.x,Tkinter,Replace,如果有一行以“truck_placement”开头,我想替换文本文档中的整行 当包含“truck_placement”时,是否可以删除整行内容,然后写入新文本 我试过了,但它只插入了新的文本,并没有替换整行 这就是当前的代码: cordget = coordinatesentry.get() fin = open(save_file,"r") filedata = fin.read() fin.close newdata = filedata
cordget = coordinatesentry.get()
fin = open(save_file,"r")
filedata = fin.read()
fin.close
newdata = filedata.replace("truck_placement: " , "truck_placement: " + cordget)
fin = open(save_file, "w")
fin.write(newdata)
fin.close
最好是将所有不带“truck_placement”的行附加到新文件中。这可以通过以下代码完成:
original = open("truck.txt","r")
new = open("new_truck.txt","a")
for line in original:
if "truck_placement" not in line:
new.write(line)
original.close()
new.close()
您可以将整个文件读入一个字符串,然后使用正则表达式替换该行:
重新导入
cordget=“(值,一)(值,二)”
保存文件=“sample.txt”
打开(将_文件“r”另存为f):
data=f.read()
#捕捉从“truck\u placement:”到换行符('\n')的行
#并将其替换为第二个参数,其中“\1”是捕获的组
#“卡车位置:”是。
data=re.sub(r'(卡车位置:).*\n',r'\1%s\n'%cordget,data)
打开时(将_文件“w”另存为f):
f、 写入线(数据)
或者,您可以将文件读取为所有行的列表,并覆盖特定行:
cordget=“(值,一)(值,二)”
保存文件=“sample.txt”
打开(将_文件“r”另存为f):
数据=f.读线()
对于索引,枚举(数据)中的行:
如果行中有“卡车放置”:
数据[索引]=f“卡车位置:{cordget}\n”
打开时(将_文件“w”另存为f):
f、 写入线(数据)
听起来有些代码并不能完全满足您的需要。您应该发布一个。可能尝试在您的文件中进行迭代,并将不等于“truck_placement”的行写入一个单独的文件或您的文件中,因为它只会覆盖它。你想让我告诉你怎么做吗?包括一些代码,这样我们就可以知道在哪里更正了?我已经把代码包括在问题中了。你能提供预期的输出吗?特别是你要覆盖的那行?因为你的代码运行得很好。恰好您将truck\u placement:
放回原位,并仅将cordget
添加到以下行newdata=filedata。替换(“truck\u placement:”,“truck\u placement:“+cordget”)