gpt4 book ai didi

python - 如何使 python curses 应用程序管道友好?

转载 作者:行者123 更新时间:2023-12-05 03:03:36 30 4
gpt4 key购买 nike

我正在编写一个旨在在 unix 管道中以交互方式使用的 python 应用程序。应用程序应启动基于 curses 的终端 UI,并根据用户交互,仅在退出前写入标准输出。

典型用法是典型管道的用法:

foo_command | my_application | sink_app

我遇到的问题是 python curses 库在应用程序运行时将各种东西发送到标准输出。此外,sink_appmy_application 运行时开始执行。

  • 如何防止诅咒污染标准输出?
  • 如何缓冲输出并在我想刷新它时进行控制?
  • 是否可以控制 sink_app 何时开始执行以及何时停止接受输入?

据我所知,我需要保存对 stdout 文件描述符的引用,以便稍后写入。并将另一个 fd(哪个?)传递给 ncurses。据说是通过 newterm(),但这在 python curses 绑定(bind)上不可用。

最佳答案

您可以通过使用 newterm 来执行此操作(在管道 中设置一个 curses 应用程序)函数直接打开用于管理屏幕的终端,同时为管道保留 stdoutdialog程序执行此操作。

但是 Python curses 接口(interface)没有 newterm(它只有 initscr,它使用 stdout 作为屏幕......),虽然可能有解决方法(在 Python 中,处理 I/O 流),该论坛的任何答案均未解决。

关于python - 如何使 python curses 应用程序管道友好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53696818/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com