Python文本文件仅在程序关闭时更新

问题描述

我具有要求用户输入然后将其写入文件中的功能。但是,程序运行时不会出现在文本文件中。这意味着当我尝试读取我的文本文件时,它为空。如果我关闭程序,所有编写的文本都会显示在文本文件中。

我有主要功能,您可以选择阅读,编写或编辑记事本。选择某些内容后,主函数将调用其他函数。我不确定在这种情况下使用的结构是否正确,还是总体上不好。希望这是有道理的。

def new_note():
    file = open('notepad.dat','a')
    file.writelines('\n' + input("Write something: "))
    file.writelines(":::" + time.strftime("%X %x"))
    file.close
    main()


def read_file():
    file = open('notepad.dat','r')
    notes = [(line.strip()).split() for line in file]
    print(notes)
    file.close
    main()

解决方法

尝试一下,它更具有Python风格:

def new_note():
    with open('notepad.dat','a') as file:
        file.writelines('\n' + input("Write something: "))
        file.writelines(":::" + time.strftime("%X %x"))
    
    main()


def read_file():
    with open('notepad.dat','r') as file:
        notes = [(line.strip()).split() for line in file]
        print(notes)       
    
     main()

但是,如果您共享main功能,将会很有帮助。 从我在本地系统上尝试过的内容来看,忽略main()调用时,上面似乎没有任何问题。

,

这里的问题是,您尝试同时写入文件时将无法读取文件。另外,一旦file.close被调用,文件将被更新。发布该数据将出现。您可以尝试重组程序。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...