如果我使用subprocess
從Python運行終端命令,如何打印密碼提示?使用Python的子進程打印密碼提示
我有一個Python腳本,要求用戶通過Kerberos進行身份驗證。我的程序基本上是這樣的:
import subprocess
def kinit():
kinit = "kinit -f"
prompt = subprocess.check_output(kinit, shell=True)
print prompt ## echoes "Password for [email protected]" AFTER pw input
if __name__=="__main__":
kinit()
doOtherStuff()
當這個腳本是從終端啓動,程序等待密碼輸入(可以通過命令行輸入),但只顯示「密碼用戶名@ domain.com「提示用戶輸入密碼後。
您知道在Python腳本等待他們輸入密碼之前,我可以如何顯示「密碼爲[email protected]」嗎?
這是正確的答案。試圖使它與子進程一起工作只會導致大量的挫折 – Logan
感謝解釋(1)爲什麼'check_output'不夠理想,(2)'Popen'和'pexpect'是更優化的解決方案。我會嘗試這些,看看他們是如何工作的。 –
@Logan:由於[這些原因](http://pexpect.readthedocs.org/en/stable/FAQ.html#whynotpipe),'pexpect'是可取的,但[這並不意味着'subprocess'不能在互動案例中使用](http://stackoverflow.com/a/23795689/4279) – jfs