'Python - How to read file one character at a time?
I am learning python file handling. I tried this code to read one character at a time
f = open('test.dat', 'r')
while (ch=f.read(1)):
print ch
Why it's not working
Here is Error message
C:\Python27\python.exe "C:/Users/X/PycharmProjects/Learning Python/01.py"
File "C:/Users/X/PycharmProjects/Learning Python/01.py", line 4
while (ch=f.read(1)):
^
SyntaxError: invalid syntax
Process finished with exit code 1
Solution 1:[1]
Your syntax is a bit off, your assignment inside the while statement is invalid syntax:
f = open('test.dat', 'r')
while True:
ch=f.read(1)
if not ch: break
print ch
This will start the while loop, and break it when there are no characters left to read! Give it a try.
Solution 2:[2]
You can use the two form version of iter
as an alternative to a while
loop:
for ch in iter(lambda: f.read(1), ''):
print ch
Solution 3:[3]
for python 3.8+ you can just do:
f = open('test.dat', 'r')
while ch := f.read(1):
print(ch)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | binaryatrocity |
Solution 2 | Jon Clements |
Solution 3 | RGBCube |