我使用python自動執行一些任務,但遇到了一些障礙。我自動化的一項任務需要用戶在shell中輸入。如何使用python自動化shell輸入?
要求您運行帶有電子郵件地址作爲參數的命令(足夠簡單),然後要求您使用該電子郵件地址的密碼進行身份驗證。你怎樣模擬用戶輸入來提供密碼?
之後還有一些菜單提示選項,輸入需要重複輸入。這是如何模擬的?請記住,這個窗口並不總是有重點..
我使用python自動執行一些任務,但遇到了一些障礙。我自動化的一項任務需要用戶在shell中輸入。如何使用python自動化shell輸入?
要求您運行帶有電子郵件地址作爲參數的命令(足夠簡單),然後要求您使用該電子郵件地址的密碼進行身份驗證。你怎樣模擬用戶輸入來提供密碼?
之後還有一些菜單提示選項,輸入需要重複輸入。這是如何模擬的?請記住,這個窗口並不總是有重點..
我想你可以使用expect爲此。
看起來像是在錯誤地思考。你只需要通過管道發送一些字節到收件人(你的情況下的shell腳本),這可以通過subprocess
完成。
我不確定你在第二部分要問什麼,但子過程可以用pexpect
模塊來控制。例如:
#!/usr/bin/env python
import pexpect
import sys
# Get email and password somehow
#email = ...
#password = ...
# Start the subprocess
child = pexpect.spawn('mycommand %s' % email)
# redirect output to stdout
child.logfile_read = sys.stdout
# Assumes the prompt is "password:"
child.expect('password:')
child.sendline(password)
# Wait for the process to close its output
child.expect(pexpect.EOF)