【问题标题】:why appended line is being printed every time i run my code in python?为什么每次我在 python 中运行我的代码时都会打印附加行?
【发布时间】:2020-08-26 14:31:54
【问题描述】:

我在 python 中打开了一个文本文件并尝试追加。现在,当我阅读每次运行代码时都会打印附加文本的文件时。我希望该文本只附加一次。

这就是我所做的

myfile=open("C:\\Users\\bhavy\\OneDrive\\Documents\\password.txt","a")
myfile.write("\n NEW LINE") 
myfile.close()
myfile=open("C:\\Users\\bhavy\\OneDrive\\Documents\\password.txt","r")
print(myfile.read())
myfile.close()

我的输出是:

 line1
 line2
 NEW LINE
 NEW LINE
 NEW LINE
 NEW LINE

我希望这个“新行”只打印一次。

【问题讨论】:

  • 可能在你写之前就已经包含了`NEW LINE'
  • 必须检查文本文件的最后一行,如果已经是NEW LINE则退出。
  • 好吧,如果你每次运行代码时都继续追加到同一个文件,结果也就不足为奇了
  • @deadshot 不,文件最初只有前两行

标签: python append


【解决方案1】:

我试过你的代码,它只给出了一个“新行”。确保给定代码上方没有循环

【讨论】:

    【解决方案2】:

    如果你想打印一次“NEW LINE”,你可以像下面这样实现。

    myfile=open("C:\\Users\\bhavy\\OneDrive\\Documents\\password.txt","a")
    myfile.write("\n NEW LINE") 
    myfile.close()
    myfile=open("C:\\Users\\bhavy\\OneDrive\\Documents\\password.txt","r")
    is_new_line_printed = False
    
    for line in myfile.readlines():
        if not "NEW LINE" in line:
            print(line)
        elif "NEW LINE" in line and not is_new_line_printed:
            print(line)
            is_new_line_printed = True
    myfile.close()
    
    # Result
    # line1
    # line2
    # NEW LINE  
    

    【讨论】:

      猜你喜欢
      • 2014-04-08
      • 1970-01-01
      • 1970-01-01
      • 2020-04-18
      • 2021-10-23
      • 2021-07-19
      • 1970-01-01
      • 1970-01-01
      • 2021-04-09
      相关资源
      最近更新 更多