python pexepect新行

时间:2013-08-06 23:02:08

标签: python newline pexpect

我是python的新手,我有一个简单的问题 我有这个功能

def testU(self):
        b = pexpect.spawn('users')
        b.expect('root user2')

它工作正常.. 和这个功能

def testW(self):
    b = pexpect.spawn('whoami')
    b.expect('root')

也没关系。

但是当我尝试将它们放在一起时,我得到一个错误,我认为这是因为我编写新行的方式

def testZ(self):
    b = pexpect.spawn('whoami; users')
    b.expect('root\nroot user2')

那么,我应该如何在字符串中表示换行符?

提前致谢

1 个答案:

答案 0 :(得分:2)

您不能在一个spawn中放置两个命令。你可以使用一个技巧:

b = pexpect.spawn("bash -c 'whoami;users'")

要匹配换行符,您应该使用:

b.expect('root\r\nroot user2')

终端TTY设备驱动程序(哑,vt100,ANSI,xterm等)都使用CR / LF组合来标记行尾。 UNIX仅使用换行符来结束文件中的行,但是当涉及TTY设备时则不行。

您可以从here了解更多相关信息。