2014-02-20 5 views
1

Я изучаю обработку файлов python. Я попробовал этот код на один символ в то времяPython - Как читать файл за один символ за раз?

f = open('test.dat', 'r') 

while (ch=f.read(1)): 
    print ch 

Почему это не работает

Вот сообщение об ошибке

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 
+5

один * символ * в то время, или один байт * * в то время? – DSM

ответ

6

Ваш синтаксис откусил, ваше задание внутри while является недопустимым синтаксисом:

f = open('test.dat', 'r') 
while True: 
    ch=f.read(1) 
    if not ch: break 
    print ch 

Это запустит цикл while и сломает его, когда нет символов, которые нужно прочитать! Попробуйте.

4

Вы можете использовать две формы версии iter в качестве альтернативы к while цикла:

for ch in iter(lambda: f.read(1), ''): 
    print ch 
Смежные вопросы