Итак, есть железка, при подключении отображается дев, в который мне нужно отсылать команду, и слушать ответ. Для этого использую такой вот скрипт:
f = open("/dev/skynet", "r+")
data = ''
print >> f, "run\r\n"
while data[:8]!="doomsday":
data=f.readline()
print data
f.closeВсе работает, но за некоторых условий ответа не следует, в итоге скрипт зависает в ожидании долгожданного ответа. Вот эту проблему мне и надо решить.
Так как с питоном познакомился чуть ли не вчера, я не придумал ничего умнее, как добавить к циклу отсчет так сказать, и в случае 10 считывания строки отрубать цикл:
f = open("/dev/skynet", "r+")
data = ''
count = 10
print >> f, "run\r\n"
while (data[:8]!="doomsday") or (count != 0):
data=f.readline()
count = count - 1
print data
f.closeНу так вот, не работает это. В итоге не работает второй аргумент, да еще и перестает работать первый.
Дайте совет как исправить это, или как сделать покрасивее.
if not data:
time.sleep(1)
continue
итдкнижки читай да ив гуголе примеров хоть завались
> книжки читай да ив гуголе примеров хоть завалисьЭмм... Я что-то не понял, при чем тут if? Меня интересуют два правила в цикле. Я ему про Фому, он мне про Ерему... Не знаем - проходим мимо.
Я то уже сделал, но мне, все-же, интересно что еще мне тут насоветуют. Наверно дальше посоветуют железку перепаять...
>> книжки читай да ив гуголе примеров хоть завались
> Эмм... Я что-то не понял, при чем тут if? Меня интересуют два
> правила в цикле.Это же питонятина, там табы и пробелы важны
>[оверквотинг удален]
> f = open("/dev/skynet", "r+")
> data = ''
> count = 10
> print >> f, "run\r\n"
> while (data[:8]!="doomsday") or (count != 0):
> data=f.readline()
> count = count - 1
> print data
> f.close
>
or на and смени, и будет щястье