-2

Pythonスクリプトの空白スペースを期待するために私たちが与えなければならないプロンプトは何ですか.私は、期待プロンプトが表示された後にのみ実行されるコマンドを実行する必要があります.手動で実行すると、プロンプトが表示されますは空白であり、スクリプト経由でも同じプロンプトが表示されることを期待する必要があります。

import pexpect import pxssh import time import os,re,sys

def ssh (ipaddr、パスワード): 試してください:

    ss = pexpect.spawn(ipaddr)
    print ipaddr    
        ss.logfile = open("/tmp/mynewlog", "a")
        print "SSH connecting"
        print 
except:
    print "connection refused"
    print
    #sys.exit()

    try:
        print password
        ss.expect (':')

            ss.sendline (password +"\n")
            print "connected"
            time.sleep(30)
            ss.expect (">")
            print "connection established"
            print

    except:
            print "Permission denied, please try again."
                print
                sys.exit()
    try:
        ss.sendline ('taskkill /F /IM iperf.exe\n')
        time.sleep(30)
        ss.expect ('>')
            ss.sendline ('cd /D D:\iperf-2.0.5-2-win32\n')
            ss.expect ('>')
            ss.sendline ('iperf -s\n')#########This command i need to execute and i'm  expecting a blank space as prompt
            ss.sendline (pexpect.EOF)
            print "END"
            ssh()  

例外: print "コマンドの実行に失敗しました"
print sys.exit()

4

1 に答える 1

1

編集:

ss.expect任意の文字列を正規表現として受け取り、それを使用してプログラムからの出力を検索します。あなたの場合、すべてのダッシュの前に行を一致させたい場合は、次のことができます

ss.expect(r'TCP window size: .*yte \(default\)')

もっと広く言えば、これで何を達成しようとしているのかはわかりませんが、このページを見ると役立つかもしれません。


年:

プロンプトとして空白が必要だと言うとき、あなたが何を意味しているのかわかりません.

1) それは本当にスペースですか?もしそうなら、ss.expect(' ')それはうまくいくはずです。

2) 行末はありますか? もしそうなら、ss.expect('\n')それはうまくいくはずです。

3)iperf本当にプロンプ​​トが表示されますか? 本当に入力待ちですか?そして、EOFを送信していますか?これはプログラムを殺しますか?

于 2013-04-25T13:59:26.637 に答える