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
属性
谢谢。- 初始的
(一个regexp字符串)实际上是s.PROMPT
,而不是'\\[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