+ 1

Problem reading a written file on Android on QPython (python3).

I wrote a small program while learning about file.write, and while it writes to the file (I found it with a file manager), the print() doesn't print anything when I run it in the QPython terminal. file1 = open("test1.txt", "a+") file1.write("Ayyyy, it worked!") cont = file1.read() print(cont) file1.close() Any idea why?

2nd Oct 2018, 11:39 AM
Konoha Tomono-Duval
Konoha Tomono-Duval - avatar
4 Answers
+ 2
I changed it a little and now it works: file1 = open("test1.txt", "a+") file1.write("Ayyyy, it worked!") file1 = open("test1.txt", "r") cont = file1.read() print(cont) file1.close() maybe a+ is no good for reading from the start.
2nd Oct 2018, 12:00 PM
Paul
Paul - avatar
+ 2
Konoha Tomono-Duval No, .read call dont reopened in write mode ("a+" mode is for append mode with read support). Like i said before, you trying to read at end of file, for this .read return an empty string. Like my previous hint you can simply do: import os file1 = open("test1.txt", "a+") file1.write("Ayyyy, it worked!") # this set the current file # "pointer" to beginning file1.seek(0, os.SEEK_SET) cont = file1.read() print(cont) file1.close() and all its fine
2nd Oct 2018, 6:58 PM
KrOW
KrOW - avatar
+ 1
Konoha Tomono-Duval Your problem is that you try to read at end of file (then read return empty). You have 2 option: 1) Close and reopen file for reading 2) Use seek method for read from start. At example by putting this line after .write file1.seek(0, os.SEEK_SET) This line set the internal file pointer to beginning of file allowing you to read from start
2nd Oct 2018, 12:02 PM
KrOW
KrOW - avatar
+ 1
Tried Paul's method, and it worked. I guess that a+ doesn't read, or maybe the file1.read reopened it in write mode and deleted the contents. Thanks, y'all!
2nd Oct 2018, 6:53 PM
Konoha Tomono-Duval
Konoha Tomono-Duval - avatar