问题描述
我具有要求用户输入然后将其写入文件中的功能。但是,程序运行时不会出现在文本文件中。这意味着当我尝试读取我的文本文件时,它为空。如果我关闭程序,所有编写的文本都会显示在文本文件中。
我有主要功能,您可以选择阅读,编写或编辑记事本。选择某些内容后,主函数将调用其他函数。我不确定在这种情况下使用的结构是否正确,还是总体上不好。希望这是有道理的。
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被调用,文件将被更新。发布该数据将出现。您可以尝试重组程序。