Python3文本文件-我想在文件1中每行文本的末尾添加用户输入,然后将新行复制到文件2中

Python3文本文件-我想在文件1中每行文本的末尾添加用户输入,然后将新行复制到文件2中,python,text-files,Python,Text Files,文件1包含5行文本 文件2为空 当我运行下面的代码时,我只得到附加到文件2的前4行? 有什么建议吗 File1 = open("MyFile.txt", "r") for Line in File1: Line = Line.strip() AddData = input( "extra text") NewLine = Line + ":" + AddData # : as field

文件1包含5行文本 文件2为空 当我运行下面的代码时,我只得到附加到文件2的前4行? 有什么建议吗

        File1 = open("MyFile.txt", "r")

        for Line in File1:
            Line = Line.strip()
            AddData = input( "extra text")
            NewLine = Line + ":" + AddData  # : as field seperator
            File2 = open("MyFile2.txt", "a")
            File2.write(NewLine+"\n")
            print(NewLine) #remove

        File2.close

您没有关闭文件写入 您需要使用:

 File2.close() 
而不是

File2.close
如果没有括号,您只命名函数而没有实际调用它,然后它就不会被执行

write(newline)方法只将行传递给缓冲区,它只在缓冲区已满或调用open()或close()时才写入文件
写前4行是因为在它们之后调用了open()方法

我在这里没有看到任何错误。所有五行都应该添加。请查看Myfile.txt是否包含5行。是否有人向您索要“额外文本”5或4次?另外:没有必要在每次写入之前重新打开文件2,您应该在进入循环之前完成。您好,感谢您的回复:文件1中有5行文本,是的,我被要求额外的文本5次。