Мне здесь не нужна помощь. Я пытаюсь получить git-репозиторий с моего корпоративного сервера через ssh.
команда для запуска - это git clone ssh://[email protected]/somefile.git/
Я новичок в программировании на питоне и смотрю на какую-то помощь.
def getRepository():
command = 'ssh://[email protected]/somefile.git'
clone_process = subprocess.Popen(['git','clone',command],stdin = subprocess.PIPE, stdout = subprocess.PIPE,stderr=subprocess.PIPE)
output,error = clone_process.communicate(input='password')
if __name__ == '__main__':
getRepository()
Во время этого процесса он запрашивает пароль пользователя, который, как я думал, общается (input = 'password'), позаботится, но это не так.
На самом деле требуется некоторое время, чтобы запросить пароль, и я должен прочитать эту строку, прежде чем я укажу пароль как входной. Как мне это достичь?
Я попытался написать stdout в файле и прочитать файл, пока не получу эту строку, но это тоже не сработало.
Кроме того, когда я вводил пароль вручную, я не вижу прогресса загрузки на терминале. есть ли способ получить это тоже?
Используйте модуль pexpect для обеспечения интерактивных входов
См. Один из моих предыдущих примеров ответа: Самый простой способ запустить сценарий ожидания из python
Вы также можете использовать модуль Paramiko с очень приятным API
pexpect
может помочь вамmr.developer
; этот пакет управляет извлечениями из git, hg, svn и bazaar из Python. По крайней мере плагин SVN также обрабатывает запрос имени пользователя и пароля.