Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用';同步原始提示';来自pxssh模块_Python_Unit Testing_Pexpect_Pxssh - Fatal编程技术网

Python 如何使用';同步原始提示';来自pxssh模块

Python 如何使用';同步原始提示';来自pxssh模块,python,unit-testing,pexpect,pxssh,Python,Unit Testing,Pexpect,Pxssh,根据我在s.sync_original_prompt()之后的理解,prompt变量应重置为初始提示,即[PEXPECT]此处,而s.prompt()应导致为True。但事实并非如此。谁能告诉我如何将提示符变量重置为原始提示符?以及如何使用sync\u original\u prompt属性 谢谢。 初始的s.PROMPT(一个regexp字符串)实际上是'\\[PEXPECT\][\\\$\\\\\\\\\\\\\\\\\\\\\\\\\\\\]',而不是[PEXPECT]\。我建议你这样写:

根据我在
s.sync_original_prompt()
之后的理解,
prompt
变量应重置为初始提示,即
[PEXPECT]
此处,而
s.prompt()
应导致
为True
。但事实并非如此。谁能告诉我如何将
提示符
变量重置为原始提示符?以及如何使用
sync\u original\u prompt
属性

谢谢。

  • 初始的
    s.PROMPT
    (一个regexp字符串)实际上是
    '\\[PEXPECT\][\\\$\\\\\\\\\\\\\\\\\\\\\\\\\\\\]'
    ,而不是
    [PEXPECT]\
    。我建议你这样写:

    >>> from pexpect import pxssh
    >>> s=pxssh.pxssh()
    >>> s.login('IP','USER','PASSWORD',auto_prompt_reset=True)
    True
    >>> s.sendline('echo Test');
    10
    >>> s.prompt()
    True
    >>> s.after
    '[PEXPECT]# '
    >>> s.PROMPT='BTEQ -- Enter your SQL request or BTEQ command:'
    >>> s.sendline('bteq .logon dbc,dbc')
    20
    >>> s.prompt()
    True
    >>> s.after
    'BTEQ -- Enter your SQL request or BTEQ command:'
    >>> s.sendline('quit;')
    6
    >>> s.prompt()
    False
    >>> s.PROMPT='[PEXPECT]# '
    >>> s.prompt()
    False
    >>> s.sync_original_prompt()
    True
    >>> s.prompt()
    False
    
    savePrompt = s.PROMPT
    
    s.PROMPT = 'a-new-prompt'
    s.sendline('bteq ...')
    s.prompt()                 # expect the new prompt
    
    s.PROMPT = savePrompt      # restore the saved prompt
    s.sendline('quit;')
    s.prompt()                 # expect the saved prompt
    
  • sync\u original\u prompt()
    应如下使用:

    >>> from pexpect import pxssh
    >>> s=pxssh.pxssh()
    >>> s.login('IP','USER','PASSWORD',auto_prompt_reset=True)
    True
    >>> s.sendline('echo Test');
    10
    >>> s.prompt()
    True
    >>> s.after
    '[PEXPECT]# '
    >>> s.PROMPT='BTEQ -- Enter your SQL request or BTEQ command:'
    >>> s.sendline('bteq .logon dbc,dbc')
    20
    >>> s.prompt()
    True
    >>> s.after
    'BTEQ -- Enter your SQL request or BTEQ command:'
    >>> s.sendline('quit;')
    6
    >>> s.prompt()
    False
    >>> s.PROMPT='[PEXPECT]# '
    >>> s.prompt()
    False
    >>> s.sync_original_prompt()
    True
    >>> s.prompt()
    False
    
    savePrompt = s.PROMPT
    
    s.PROMPT = 'a-new-prompt'
    s.sendline('bteq ...')
    s.prompt()                 # expect the new prompt
    
    s.PROMPT = savePrompt      # restore the saved prompt
    s.sendline('quit;')
    s.prompt()                 # expect the saved prompt