我想學習一點關於pexpect:特別是我試圖從我的筆記本電腦複製文件到遠程服務器。 我遇到一個奇怪的行爲:或多或少相同的代碼工作,如果我一行一行寫,但它不會如果我作爲腳本運行它。 這是我寫的行由行:scp到遠程服務器使用pexpect
child = pexpect.spawn('scp pathdir/file.ext [email protected]:pathdir')
r=child.expect ('assword:')
r
返回0,我完成這項工作與密碼
child.sendline ('password')
當我做ssh來,我發現我的文件中有服務器。所以我收集了一個腳本中的所有步驟;它退出沒有錯誤,但它沒有被複制的文件...爲什麼?但更重要的是,我該如何解決這個問題?
下面是腳本:
child = pexpect.spawn('scp pathdir/file.ext [email protected]:pathdir')
r=child.expect ('assword:')
print r
if r==0:
child.sendline ('password')
child.close()
我不知道Pexpect的是如何工作的,所以我印記R,以確保它是0。它是。
你是否從'file.ext'所在的文件夾開始腳本? – njzk2
是:腳本和file.ext位於同一目錄中。然而,這個問題需要編輯:file.ext以其完整路徑給出。 – user2988577
遇到同樣的問題。你現在解決了嗎? – laike9m