我想尝试使用 Pexpect Python 库及其 popen_spawn.PopenSpawn
函数来创建一些跨平台自动化。
我从一些非常简单的东西开始,然后在 Linux 上运行它:
import sys
from pexpect import popen_spawn
child = popen_spawn.PopenSpawn("ls /", logfile=sys.stdout)
这在标准输出上没有任何显示,这是正常的吗?
最佳答案
其实这很简单,应该使用 sys.stdout.buffer
而不是 sys.stdout
就像下面这样:
import sys
import pexpect
from pexpect import popen_spawn
child = popen_spawn.PopenSpawn("ls /", logfile=sys.stdout.buffer)
child.expect(pexpect.EOF)
正确输出/
的内容:
bin
boot
cdrom
dev
etc
home
initrd.img
initrd.img.old
lib
lib64
lost+found
media
mnt
opt
proc
root
run
sbin
snap
srv
swapfile
sys
timeshift
tmp
usr
var
vmlinuz
vmlinuz.old
关于python - Pexpect PopenSpawn 在标准输出上不显示任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57926469/