Python .txt编辑出错,文字消失了

时间:2017-02-08 17:30:38

标签: python python-3.x text

我尝试了以下内容:

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()

它将改变现有代码:

  1. 如果提到参数历史记录,则应添加行。

  2. 如果提到参数victory_points,则应删除行,但可以采用以下两种形式:

  3. victory_points={xxxxx x}

          victory_points = {
            9648 5 
          }
    

    我认为算法是正确的,但我最终得到一个空的.txt

    是什么错?

1 个答案:

答案 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)