how to open file in read and append mode in python at the same time in one variable
You're looking for the r+
or a+
mode, which allows read and write operations to files (see more).
With r+
, the position is initially at the beginning, but reading it once will push it towards the end, allowing you to append. With a+
, the position is initially at the end.
with open("filename", "r+") as f:
# here, position is initially at the beginning
text = f.read()
# after reading, the position is pushed toward the end
f.write("stuff to append")
with open("filename", "a+") as f:
# here, position is already at the end
f.write("stuff to append")
If you ever need to do an entire reread, you could return to the starting position by doing f.seek(0)
.
with open("filename", "r+") as f:
text = f.read()
f.write("stuff to append")
f.seek(0) # return to the top of the file
text = f.read()
assert text.endswith("stuff to append")