次のような pexpect.expect への呼び出しがあるとしましょう:
ret = pex.expect([re.escape(line), pexpect.EOF, pexpect.TIMEOUT], timeout)
if ret == 0:
do_stuff()
elif ret == 1:
do_eof_stuff()
elif ret == 2:
do_timeout_stuff()
関心のある行に一致させる代わりに、EOF と TIMEOUT の処理に加えて、物事を切り替えて、その行以外のものに一致させたいと考えています。このような並べ替え:
ret = pex.expect([not re.escape(line), pexpect.EOF, pexpect.TIMEOUT], timeout)
if ret == 0:
do_error_stuff()
elif ret == 1:
do_eof_stuff()
elif ret == 2:
do_timeout_stuff()
else:
# Our line "matched" so do stuff
do_stuff()
「not re.escape(line)」が有効でないことはわかっています。これは、私が望むものを示すための単なる方法です。その代わりに実際に何を使用しますか?