Issue
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()
Solution
I think you need to open your file with r+ and use truncate(0).
Like that
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.