当前位置: 首页 > 面试题库 >

如何写入CSV而不覆盖过去的文本

方浩旷
2023-03-14
问题内容

下面的代码是我到目前为止所拥有的。当它写入.csv文件时,它将覆盖我之前在文件中写入的内容。如何以不擦除我之前的文本的方式写入文件(我的代码的目的是要有一个人输入他们的名字,让程序记住他们)

def main(src):
    try:
        input_file = open(src, "r")
    except IOError as error:
        print("Error: Cannot open '" + src + "' for processing.")
    print("Welcome to Learner!")
    print("What is your name? ")
    name = input()
    for line in input_file:
        w = line.split(",")
        for x in w:    
            if x.lower() == name.lower():
                print("I remember you "+ name.upper())
            else:
                print("NO")
                a = open("learner.csv", "w")
                a.write(name)
                a.close()
                break
if __name__ == "__main__":
    main("learner.csv")

问题答案:

您需要在下次添加文件。这可以通过以追加模式打开文件来完成。

def addToFile(file, what):
    f = open(file, 'a').write(what)


 类似资料:
  • 问题内容: 我正在尝试编写一种方法(如果尚不存在),然后制作一个“ log.txt文件”,然后将其写入该文件。我遇到的问题是每次调用该方法时,它都会覆盖现有的日志。如何更改方法,以使它不会覆盖数据而是仅更新文件? 我的写入文件方法: 问题答案: 只需更改为

  • 问题内容: 我正在使用Log4j2 ver 2.3 log4j2.xml看起来像: 当前一天的日志被当天的某些日志覆盖时,所有方法都可以正常工作到第二天。 示例:catalina.2018-03-21.log昨天(3月21日)很好,但是今天被2018-03-22的某些日志覆盖,当时catalina.2018-03-22.log包含了今天(3月22日)的其余日志) 有什么想法吗? 问题答案: Log

  • 问题内容: with open(“games.txt”, “w”) as text_file: print(driver.current_url) text_file.write(driver.current_url + “\n”) 我现在正在使用此代码,但是当它写入文件时,它将覆盖旧内容。我如何能简单地添加它而不删除已经存在的内容。 问题答案: 而不是使用(附加)功能模式:

  • 问题内容: 如何在文件中添加文本而不覆盖旧文本。我使用模块fs(节点js) 我试过了这段代码,但是没有用。 任何建议,谢谢。 问题答案: 在此处检查标记:http : //nodejs.org/api/fs.html#fs_fs_open_path_flags_mode_callback-您当前正在使用哪个标记: ‘w +’-打开文件进行读写。文件已创建(如果不存在)或被截断(如果存在)。 您应该

  • 问题内容: 我正在研究pypreprocessor,它是一种采用c样式指令的预处理器,而且能够使它像传统的预处理器一样工作(它是自耗的,并且可以即时执行后处理的代码),但它会破坏库进口。 问题是:预处理程序运行文件,对其进行处理,将其输出到一个临时文件中,然后执行exec()临时文件。导入的库需要有所不同,因为它们没有执行,而是被加载并可以被调用者模块访问。 我需要做的是:中断导入(因为预处理程序