我正在搜索删除stdout中脚本生成的部分输出的方法。我们假设输出如下:
line 1: some text...
line 2: other text...
line 3: and so on...
在脚本的这一点上,我调用os.system("ls")
,这将生成当前目录中的文件列表,其中包含我无法提前知道的输出量。因此,stdout将更新为
line 1: some text...
line 2: other text...
line 3: and so on...
line 4: file1
line 5: file 2
...
line n: file n
我想通过第3行到第n行清理标准输出但我不知道该怎么做。我已经尝试使用转义\033[s
在第3行保存光标位置(然后使用\033[K
转义逐行删除)但这不起作用(我的系统没有&#39} ; t支持\033[s
)。我可以使用转义\033[<L>;<C>H
在第3行返回,但我不知道如何删除文本直到结束(或向后删除行直到第3行)。
有人知道怎么做吗?
任何建议表示赞赏。感谢
答案 0 :(得分:1)
您可以从被调用的进程捕获stdout,将前三行打印到您自己的stdout,然后忽略进一步的输出或者只是终止进程,而不是摆弄终端。如果它只是ls
你正在执行,你可能会找到glob
- 模块。