Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.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 pexpect与此处的换行符不匹配_Python_Pexpect - Fatal编程技术网

为什么Python pexpect与此处的换行符不匹配

为什么Python pexpect与此处的换行符不匹配,python,pexpect,Python,Pexpect,我正在尝试从run.py执行client.py。client.py将提示输入。我已经编写了一个简单的pexpect代码,但是它与提示符不匹配,并且挂起 这是我的密码 client.py run.py 这是另一次使用expect_exact的尝试,它对我没有帮助 run1.py Python和pexpect版本- 您可能希望使用expect\u-exact而不是expect,因为后面的方法需要正则表达式,其中[是一个特殊字符。问题在于您的\n字符。如前所述,您正在发送\n,但pexpect将其视为

我正在尝试从run.py执行client.py。client.py将提示输入。我已经编写了一个简单的pexpect代码,但是它与提示符不匹配,并且挂起

这是我的密码

client.py run.py 这是另一次使用expect_exact的尝试,它对我没有帮助

run1.py Python和pexpect版本-
您可能希望使用
expect\u-exact
而不是
expect
,因为后面的方法需要正则表达式,其中
[
是一个特殊字符。

问题在于您的
\n
字符。如前所述,您正在发送
\n
,但pexpect将其视为
\r\n
,因此您必须告诉
run.py
希望
\r\n
,而不仅仅是
\n

import pexpect
child = pexpect.spawn ('python client.py')
child.expect_exact('Please data, default [ /Anything ]:\r\n')
child.sendline ('anonymous')

保持
client.py
原样(不要将
\r
添加到
原始输入字符串中)。

您只需在pexpect中输入
任何内容,然后继续您的代码即可

child.pexpect('Anything')

它对我不起作用。我用上面的代码编辑了我的问题。
import pexpect
child = pexpect.spawn ('python client.py')
child.expect_exact('Please data, default [ /Anything ]:\n')
child.sendline ('anonymous')
Python 2.7.2 (default, May 13 2014, 12:53:14)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pexpect
>>> pexpect.__version__
'3.2'
>>>
import pexpect
child = pexpect.spawn ('python client.py')
child.expect_exact('Please data, default [ /Anything ]:\r\n')
child.sendline ('anonymous')
child.pexpect('Anything')