Найти - Пользователи
Полная версия: Запуск внешнего приложения
Начало » Python для новичков » Запуск внешнего приложения
1
roggerg
Всем привет.
Есть внешнее приложение, задача написать такой скрипт. Запустить приложение, передать в него
пароль и логин и дальше запустить его.
С первой частью а имменно запуск мне понятен (Использутся модуль os и функция os.system('path')) а вот
как дальше реализовать я не знаю.
JOHN_16
дальше вам никак, потому что вы не имеете никакого контроля за дочерним процессом
используйте subprocess
И да этот вопрос оч легко гуглится
roggerg
Я пытался гуглить, но не смог найти ответа на мой вопрос. Буду благодарен за ссылку с описанием.
Т.е. изачально было не правильно выбран модуль os?

PEHDOM
както так, на примере cat :
 import subprocess
 
p = subprocess.Popen(['cat'], stdout=subprocess.PIPE, stdin=subprocess.PIPE)
 
for i in range(3):
    p.stdin.write('msg {}\n'.format(i))
    info = p.stdout.readline()
    print(info)
или так:
 import subprocess
proc = subprocess.Popen(['sftp','user@server', 'stop'], stdin=subprocess.PIPE)
proc.stdin.write('yourPassword\n')
proc.stdin.flush()
“ссылка с описанием”: https://docs.python.org/3/library/subprocess.html
на русском: https://pythonworld.ru/moduli/modul-subprocess.html
http://john16blog.blogspot.com/2010/10/python-subprocess.html
roggerg
Спасибо
Пытался повторить первый пример и у меня появляется такая ошибка
Traceback (most recent call last):
File “<stdin>”, line 2, in <module>
TypeError: a bytes-like object is required, not ‘str’
JOHN_16
roggerg
TypeError: a bytes-like object is required, not ‘str’
TypeError: необходим байтовый объект, а не ‘str’
намекну
 >>> type('qwe')
<class 'str'>
>>> type(b'qwe')
<class 'bytes'>
>>> type(bytes('qwe', 'utf-8'))
<class 'bytes'>
>>> bytes('qwe', 'utf-8') == b'qwe'
True
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