Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python txt编辑出错,文本丢失_Python_Python 3.x_Text - Fatal编程技术网

Python txt编辑出错,文本丢失

Python txt编辑出错,文本丢失,python,python-3.x,text,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+' }\

我尝试了以下方法:

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()
应更改现有代码:

  • 如果提到参数历史,则应添加行

  • 如果提到参数“U点”,则应删除线,但可以采用以下两种形式:

  • victory_points={xxxxx}

    我认为这个算法是正确的,但最后我得到了一个空的.txt文件


    故障是什么?

    您首先以“w”的形式打开文件。“w”是写模式,它创建一个新的要写入的空文件

    您应该以“r”的形式打开输入文件进行读取,并打开另一个文件名不同的文件进行输出。大概是这样的:

    data_in=open(filename, "r")
    data_out=open(filename+"_output", "w")
    
    data_in.close()
    data_out.close()
    
    os.remove(filename)
    os.rename(filename+"_output",filename)
    
    如果文件需要具有相同的名称,可以使用os.remove()和os.rename()删除旧文件,并将新文件重命名为与旧文件相同的名称。在脚本末尾,如下所示:

    data_in=open(filename, "r")
    data_out=open(filename+"_output", "w")
    
    data_in.close()
    data_out.close()
    
    os.remove(filename)
    os.rename(filename+"_output",filename)
    

    您首先以“w”的形式打开文件。“w”是写模式,它创建一个新的要写入的空文件

    您应该以“r”的形式打开输入文件进行读取,并打开另一个文件名不同的文件进行输出。大概是这样的:

    data_in=open(filename, "r")
    data_out=open(filename+"_output", "w")
    
    data_in.close()
    data_out.close()
    
    os.remove(filename)
    os.rename(filename+"_output",filename)
    
    如果文件需要具有相同的名称,可以使用os.remove()和os.rename()删除旧文件,并将新文件重命名为与旧文件相同的名称。在脚本末尾,如下所示:

    data_in=open(filename, "r")
    data_out=open(filename+"_output", "w")
    
    data_in.close()
    data_out.close()
    
    os.remove(filename)
    os.rename(filename+"_output",filename)
    

    谢谢,但是如果由于处理原因文件名必须相同怎么办?@ThorepingBank您可以使用os.remove()和os.rename()删除旧文件并重命名新文件。我编辑了我的答案以反映这一点。谢谢,但是如果由于处理原因文件名必须相同怎么办?@ThorepingBank您可以使用os.remove()和os.rename()删除旧文件并重命名新文件。我编辑了我的答案以反映这一点。