Python-функция os.system в цикле while
Я пытаюсь сделать простой скрипт на Python для автоматического клика в Ubuntu 14.04.
вот мой код
#!/usr/bin/python
import os
clickCounter = 0
while clickCounter == 0:
timeNow = os.system('date +\"%s\"')
if timeNow > 10:
os.system('xdotool click 1')
clickCounter = clickCounter + 1
однако по какой-то причине все, что он будет делать, это распечатывать время снова и снова, пока я не закрою терминал. если кто-нибудь может мне помочь, это будет очень ценно
2 ответа
Решение
Если вам все еще нужно использовать os.system
Вы должны сделать это:
timeNow = os.popen('date +\"%s\"').read()
Лучше использовать subprocess
:
import subprocess
proc = subprocess.Popen(('date +\"%s\"'.split(), stdout=subprocess.PIPE, shell=True)
(timeNow, err) = proc.communicate()
Но как указано в комментариях - в вашем случае используйте time
os.system возвращает статус выхода. Если вам нужно получить вывод команды в переменную try,
команды импорта
импорт ОС
clickCounter = 0
пока clickCounter == 0:
timeNow = commands.getoutput('date +\"%s\"')
if timeNow > 10:
os.system('xdotool click 1')
clickCounter = clickCounter + 1