我有一个Python脚本,需要通过命令行与用户交互,同时记录输出的内容。
我现在有这个:
# lots of code
popen = subprocess.Popen(
args,
shell=True,
stdin=sys.stdin,
stdout=sys.stdout,
stderr=sys.stdout,
executable='/bin/bash')
popen.communicate()
# more code
它执行一个shell命令(例如adduser newuser02),就像在终端中输入命令一样,包括交互行为。这很好。
现在,我想从Python脚本中记录屏幕上显示的所有内容。但我似乎不能让那部分发挥作用。
我尝试过使用subprocess.PIPE的各种方法,但这通常会扰乱交互,比如不输出提示字符串。
我还尝试了各种方法来直接更改sys.stdout的行为,但是当subprocess直接写入sys.stdout.fileno()时,这一切都没有用。
目前没有回答
相关问题 更多 >
编程相关推荐