This Content is from Stack Overflow. Question asked by ProgramProdigy
I am trying to make my code so that it simulates a chat. So far, I have no problem doing that, but the problem is, I want to make it so that when the chat reaches a certain amount of lines, it purges the chat and empties out the content of the text file into another archive file. Currently, I am using fs.truncate method for this, but it is not working. Please suggest any useful methods for this. I am using python.
fs = open("forum.text", 'r') root3 = Tk() root3.geometry('500x500') full_chat = Label(root3, text=fs.read(), font=('Arial', 8, "bold")).pack() chat_text = Text(root3, height=5) line_count = len(fs.readlines()) if line_count in [32, 33, 34, 35, 36, 37]: fs4 = open("forum.text", 'a') fs4.write("nChat is purging soon! Beware!") elif line_count >= 38: fs2 = open("forum.text", 'w') fs3 = open("archive.text", 'w') fs3.write(fs.read()) fs2.truncate() chat_text.pack() def post_msg(): msg = chat_text.get('1.0', 'end-1c') fs1 = open("forum.text", 'a') fs1.write('n' + username + ' says: ' + msg) fs1.close() root3.destroy() forum(username) Button(root3, text="Post to Chat", command=post_msg).pack()
I think you need to open your file with r+ and use truncate(0).
with open('file1.txt', 'r+') as firstfile, \ open('file2.txt', 'a') as secondfile: for line in firstfile: secondfile.write("\nline") firstfile.truncate(0)
This Question was asked in StackOverflow by ProgramProdigy and Answered by bitflip It is licensed under the terms of CC BY-SA 2.5. - CC BY-SA 3.0. - CC BY-SA 4.0.