Проблема, с которой вы можете столкнуться, заключается в том, что os.system запускает процесс как часть текущего процесса.Таким образом, остальная часть вашего сценария не будет запущена, пока команда, которую вы запускаете, не завершила выполнение.
Я думаю, что вы хотите выполнить консольную команду в другом потоке, чтобы поток, выполняющий ваш сценарий python, мог продолжить работу, пока команда выполняется в фоновом режиме.Смотрите Запустите программу Python в новом потоке для получения дополнительной информации.
Я бы предложил что-то вроде (это не проверено):
import os
import time
import multiprocessing
myThread = multiprocessing.process(target=os.system, args=("top>>data.txt -n 1",))
myThread.start()
time.sleep(5)
myThread.terminate()
При этом,вам, возможно, придется подумать о безопасности потока в os.system (), если он не является потокобезопасным, вам нужно будет найти альтернативу.
Что-то еще, на что стоит обратить внимание (и о котором я мало что знаю)может ли не быть идеальным завершать потоки таким образом, см. некоторые ответы здесь: Есть ли способ уничтожить тему?