Задача в чтении дописываемиго другой программой файла. Необходимо получать цельные строки, а не порезанные в лапшу. То есть хочется чтобы readline ждал прихода символа конца строки и только после этого возвращал результат.
Такой код
#!/usr/bin/python
import sys
import time
inpf = open('inp','r')
while True:
line = inpf.readline()
if len(line) != 0 :
print len(line), ':', line
time.sleep(4)
при чтении медленно посимвольно дописываемого файла c содержимым
'0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15\n16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31\n'
даёт вывод
1 : 0
4 : 1 2
4 : 3 4
4 : 5 6
4 : 7 8
4 : 9 1
4 : 0 11
4 : 12
4 : 13 1
4 : 4 15
1 :
7 : 16 17 1
4 : 8 19
4 : 20
4 : 21 2
4 : 2 23
4 : 24
4 : 25 2
4 : 6 27
4 : 28
4 : 29 3
4 : 0 31
1 :
Здесь
http://python.su/forum/viewtopic.php?id=7155 решалась для stdin обратная задача - как сделать readline неблокирующим. Но чтобы сделать блокирующим соответстующего ключика не нашёл. (Не тем местом смотрел ?)