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
Другие вопросы по тегам