Запуск команды периодически и сохранение вывода в файл CSV

Я выполняю некоторую команду в эмуляторе SDN. Команда:

$ py ap1.params['frequency']

Это дает мне одно значение (float). Как написать небольшой скрипт python или использовать одну команду для запуска указанной выше команды каждые 2 секунды и добавить каждый вывод в файл csv.

0
задан 5 November 2017 в 13:53

4 ответа

Отказ от ответственности: я ничего не знаю о python, я просто совмещаю сказанное в приведенных ниже источниках.

Напишите цикл while с командой sleep, которая регулярно вызывает вашу команду: source import time; while True: ap1.params['frequency']; time.sleep(2) Это будет фактически не вызов команда каждые две секунды, но подождите две секунды между каждым прогоном - вы можете настроить время сна. Запустите цикл и перенаправьте вывод в файл, добавив его: source py 'import time; while True: ap1.params['frequency']; time.sleep(2)' >> output.csv Есть другие способы перенаправления вывода, конечно, сам python также полностью способен это сделать - см. Источник альтернативных подходов.
0
ответ дан 18 July 2018 в 03:51

Вы можете (вроде неправильно) использовать команду watch:

watch -n 2 -p "( py ap1.params[\'frequency\'] >>output.csv )"

Вы не увидите много на экране, который будет отображаться на экране, за исключением изменения времени, поскольку фактическое выход перенаправляется. Обратите внимание, что команда, заданная для просмотра, включая перенаправление, должна быть сгруппирована в круглые скобки. Кроме того, с часами или без них, возможно, одиночные кавычки в команде ('frequency') должны быть экранированы с помощью \, чтобы они не были разделены оболочкой.

Для получения дополнительной информации см. [F4].

0
ответ дан 18 July 2018 в 03:51

Отказ от ответственности: я ничего не знаю о python, я просто совмещаю сказанное в приведенных ниже источниках.

Напишите цикл while с командой sleep, которая регулярно вызывает вашу команду: source import time; while True: ap1.params['frequency']; time.sleep(2) Это будет фактически не вызов команда каждые две секунды, но подождите две секунды между каждым прогоном - вы можете настроить время сна. Запустите цикл и перенаправьте вывод в файл, добавив его: source py 'import time; while True: ap1.params['frequency']; time.sleep(2)' >> output.csv Есть другие способы перенаправления вывода, конечно, сам python также полностью способен это сделать - см. Источник альтернативных подходов.
0
ответ дан 24 July 2018 в 17:56

Вы можете (вроде неправильно) использовать команду watch:

watch -n 2 -p "( py ap1.params[\'frequency\'] >>output.csv )"

Вы не увидите много на экране, который будет отображаться на экране, за исключением изменения времени, поскольку фактическое выход перенаправляется. Обратите внимание, что команда, заданная для просмотра, включая перенаправление, должна быть сгруппирована в круглые скобки. Кроме того, с часами или без них, возможно, одиночные кавычки в команде ('frequency') должны быть экранированы с помощью \, чтобы они не были разделены оболочкой.

Для получения дополнительной информации см. [F4].

0
ответ дан 24 July 2018 в 17:56

Другие вопросы по тегам:

Похожие вопросы: