【发布时间】:2021-05-10 02:36:26
【问题描述】:
问题
下面的代码是一个真实终端的模拟,在本例中是一个 CMD 终端。问题是“cls”没有清除 CMD 的 STDOUT。因此,字符串 STDOUT 开始保持如此广泛的范围。
问题示例
Microsoft Windows [版本 10.0.19042.746] (c) 2020 年微软公司。 Todos os direitos reservados。
C:\Users\Lsy\PycharmProjects\Others>chdir
C:\Users\Lsy\PycharmProjects\Others
C:\Users\Lsy\PycharmProjects\Others>回声测试
测试
C:\Users\Lsy\PycharmProjects\Others>cls
类型:
问题
如何清除STDOUT?
脚本
import subprocess
f = open('output.txt', 'w')
proc = subprocess.Popen('cmd.exe', stderr=subprocess.STDOUT, stdin=subprocess.PIPE, stdout=f, shell=True)
while True:
command = input('Type:')
command = command.encode('utf-8') + b'\n'
proc.stdin.write(command)
proc.stdin.flush()
with open('output.txt', 'r') as ff:
print(ff.read())
ff.close()
【问题讨论】:
-
你从不在任何地方使用
cls?! -
我确实举了一个“cls”问题的例子。基本上,如果您键入一些命令并尝试使用 'cls' 来清除它不起作用。
标签: python subprocess popen