Найти - Пользователи
Полная версия: вопрос по subprocess
Начало » Python для новичков » вопрос по subprocess
1
ss100s
 import subprocess
p = subprocess.Popen('/usr/bin/sudo /usr/bin/apt update', shell = True, stdout = subprocess.PIPE)
output = p.communicate()[0]
myfile = open("/tmp/output", "w")
myfile.write(output)
myfile.close()
print 'next'
Нужно выполнить “print ‘next’” не дожидаясь завершения ‘/usr/bin/apt upgrade’.
При этом ‘/usr/bin/apt upgrade’ должен корректно отработать и вывод записать в “/tmp/output”.
doza_and
ss100s
Нужно выполнить “print ‘next’” не дожидаясь завершения
Вы забыли изложить в чем проблема.
 import subprocess as sp
print("next")
sp.check_call("sudo apt update > /tmp/out.txt",shell=1)
ss100s
doza_and
Вы забыли изложить в чем проблема.
Так и есть
После вызова приложения через “subprocess.Popen” необходимо продолжить выполнение скрипта.
Само приложение отрабатывает длительное время и вызывается многократно.
JOHN_16
doza_and
p.communicate()
это блокирующая операция, вам надо использовать Popen, а лог писать лучше как doza_and описал
ss100s
JOHN_16
это блокирующая операция, вам надо использовать Popen, а лог писать лучше как doza_and описал
Спс. В полной версии скрипта я не сохраняю вывод Popen в лог, а передаю в переменную чтобы распарсить.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB