我尝试了以下内容:
def überschreiben(filename,vp, capital):
data_in=open(filename,"w")
data_out=open(filename)
vpsegment=False
for line in data_out:
if "\thistory" in line:
data_in.write(line+'\n\t\tvictory_points = { '+capital+' '+vp+' }\n')
if "\t\tvictory_points" in line:
vpsegment=True
if vpsegment==True:
if "}" in line:
data_in.write("")
vpsegment=False
else:
data_in.write("")
else:
data_in.write(line)
data_in.close()
data_out.close()
它将改变现有代码:
如果提到参数历史记录,则应添加行。
如果提到参数victory_points,则应删除行,但可以采用以下两种形式:
victory_points={xxxxx x}
或
victory_points = {
9648 5
}
我认为算法是正确的,但我最终得到一个空的.txt
是什么错?
答案 0 :(得分:0)
您正在打开文件" w"第一。 " W"是写模式,它创建一个要写入的新空文件。
您应该打开输入文件" r",进行读取,并打开第二个文件,使用不同的文件名作为输出。像这样:
data_in=open(filename, "r")
data_out=open(filename+"_output", "w")
如果文件需要具有相同的名称,则可以使用os.remove()和os.rename()删除旧文件,并将新文件重命名为与旧文件相同的名称。在脚本的最后,像这样:
data_in.close()
data_out.close()
os.remove(filename)
os.rename(filename+"_output",filename)