Я выполняю некоторую команду в эмуляторе SDN. Команда:
$ py ap1.params['frequency']
Это дает мне одно значение (float). Как написать небольшой скрипт python или использовать одну команду для запуска указанной выше команды каждые 2 секунды и добавить каждый вывод в файл csv.
Отказ от ответственности: я ничего не знаю о python, я просто совмещаю сказанное в приведенных ниже источниках.
Напишите цикл while с командой sleep, которая регулярно вызывает вашу команду: sourceimport time; while True: ap1.params['frequency']; time.sleep(2)
Это будет фактически не вызов команда каждые две секунды, но подождите две секунды между каждым прогоном - вы можете настроить время сна. Запустите цикл и перенаправьте вывод в файл, добавив его: source py 'import time; while True: ap1.params['frequency']; time.sleep(2)' >> output.csv
Есть другие способы перенаправления вывода, конечно, сам python также полностью способен это сделать - см. Источник альтернативных подходов. Вы можете (вроде неправильно) использовать команду watch:
watch -n 2 -p "( py ap1.params[\'frequency\'] >>output.csv )"
Вы не увидите много на экране, который будет отображаться на экране, за исключением изменения времени, поскольку фактическое выход перенаправляется. Обратите внимание, что команда, заданная для просмотра, включая перенаправление, должна быть сгруппирована в круглые скобки. Кроме того, с часами или без них, возможно, одиночные кавычки в команде ('frequency') должны быть экранированы с помощью \, чтобы они не были разделены оболочкой.
Для получения дополнительной информации см. [F4].
Отказ от ответственности: я ничего не знаю о python, я просто совмещаю сказанное в приведенных ниже источниках.
Напишите цикл while с командой sleep, которая регулярно вызывает вашу команду: sourceimport time; while True: ap1.params['frequency']; time.sleep(2)
Это будет фактически не вызов команда каждые две секунды, но подождите две секунды между каждым прогоном - вы можете настроить время сна. Запустите цикл и перенаправьте вывод в файл, добавив его: source py 'import time; while True: ap1.params['frequency']; time.sleep(2)' >> output.csv
Есть другие способы перенаправления вывода, конечно, сам python также полностью способен это сделать - см. Источник альтернативных подходов. Вы можете (вроде неправильно) использовать команду watch:
watch -n 2 -p "( py ap1.params[\'frequency\'] >>output.csv )"
Вы не увидите много на экране, который будет отображаться на экране, за исключением изменения времени, поскольку фактическое выход перенаправляется. Обратите внимание, что команда, заданная для просмотра, включая перенаправление, должна быть сгруппирована в круглые скобки. Кроме того, с часами или без них, возможно, одиночные кавычки в команде ('frequency') должны быть экранированы с помощью \, чтобы они не были разделены оболочкой.
Для получения дополнительной информации см. [F4].