Pydev:将标准输出发送到真实(tty)终端

2024-02-03

跟进上一个问题(子进程:PyDev 控制台与 cmd.exe https://stackoverflow.com/questions/10236260/subprocess-pydev-console-vs-cmd-exe),有没有办法改变 PyDev 发送 stdout 的位置——即发送到 tty 终端?

我遇到过一些没有 tty 终端会受到限制的情况。对于子进程模块的情况,我可以使用 CREATE_NEW_CONSOLE 标志,但在其他情况下,例如在这个问题中(在控制台中正确打印 \r https://stackoverflow.com/questions/6125692/print-r-correctly-in-console),PyDev 控制台似乎不支持使用转义字符。

任何想法表示赞赏。


我通常通过以下方式处理此类问题logging标准库中的模块,这非常好,但我假设您有充分的理由想要这个。

如果 PyDev 控制台支持完整的终端仿真,我会感到惊讶。至少在 Windows 上的 Helios 下,我对 Unicode 显示没有任何问题,但终端转义是另一回事。

如果您具体知道要使用哪个终端,则可以运行sleep 3600然后在您的测试驱动程序中执行此操作:

import sys
def redirect_terminal(ttypath):
  term = open(ttypath, 'w+')
  sys.stdout = term
  sys.stderr = term

在交互式解释器中尝试这个,这可能与在 PyDev 中运行它有点不同,我在初始终端中得到这个(注意本地回显和提示符仍然返回这里):

>>> redirect_terminal('/dev/pts/0')
>>> dir()
>>> raise TypeError
>>>

这在/dev/pts/0终端:

['__builtins__', '__doc__', '__name__', '__package__', 'redirect_terminal', 'sys']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError

虽然我没有在这里尝试任何终端转义,但它们只是像其他任何字节序列一样打印的字节序列,因此它们应该打印在远程终端上。

我无法设法从交互式解释器中的不同终端收集输入。当我尝试时,仍然从初始终端读取输入。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pydev:将标准输出发送到真实(tty)终端 的相关文章

  • Python CSV Writer 在文件末尾留下一个空行

    以下代码在 txt 文件末尾留下一个空白行 我怎样才能不让 writerows 不终止最后一行 with open fname wb as myFile Start the CSV Writer wr csv writer myFile d
  • Python OverflowError:数学范围错误[重复]

    这个问题在这里已经有答案了 当我尝试这个计算时 出现溢出错误 output math exp 1391 12694245 100 我知道发生这种情况是因为使用的数字 超出了双精度数的范围 但有什么方法可以解决这个问题并获得输出值 有人可以帮
  • 以 str.format 切片字符串

    我想实现以下目标str format x y 1234 5678 print str x 2 str y 2 我能够做到这一点的唯一方法是 print 0 1 format str x 2 str y 2 现在 这是一个例子 我真正拥有的是
  • Keras model.summary() 结果 - 了解参数数量

    我有一个简单的神经网络模型 用于使用 Keras Theano 后端 从用 python 编写的 28x28px 图像中检测手写数字 model0 Sequential number of epochs to train for nb ep
  • 使用 glGetFloatv 检索 pyglet 中的模型视图矩阵

    我正在使用 pyglet 在 python 中进行 3D 可视化 并且需要检索模型视图和投影矩阵来进行一些选择 我使用以下方式定义我的窗口 from pyglet gl import from pyglet window import wi
  • TCP打孔问题

    我尝试使用 Python 3 中概述的原则为防火墙编写一个基本的 TCP 打孔器本文 http www bford info pub net p2pnat index html 不过 我无法连接任何东西 这是代码 usr bin pytho
  • 如何将嵌套的Python字典转换为简单的命名空间?

    假设我有一个深度为 N 的嵌套字典 如何将每个内部嵌套字典转换为简单的命名空间 example input key0a test key0b key1a key2a keyNx key2b test key1b test example o
  • Django“模型”对象不可迭代

    我有一张表 其中显示了已注册的员工 我想根据他们的数据库生成一个简单的 HTML 页面 其中包括他们的姓名 id 职称等 为此 我将一个 id 传递给视图 以便它可以获取相应用户的详细信息并向我显示 一切正常 直到出现错误对象不可迭代 下面
  • Python 中嵌套列表的排序和分组

    我有以下数据结构 列表的列表 4 21 1 14 2008 10 24 15 42 58 3 22 4 2somename 2008 10 24 15 22 03 5 21 3 19 2008 10 24 15 45 45 6 21 1 1
  • 如何使用appium自动化Android手机后退按钮

    我正在使用 Appium python 客户端库 对 Android 上的混合移动应用程序进行测试自动化 我无法找到任何方法来自动化或创建手势以使用 电话后退 按钮返回到应用程序的上一页 有没有可以使用的驱动函数 我尝试了 self dri
  • 如何使直方图列的宽度都相同

    我在操作直方图时遇到了一些麻烦 我有一个包含两列的 df 我将它们绘制为堆叠直方图 我将它们放入特定的垃圾箱中 请参阅下面的代码 但我想在最后制作一个大垃圾箱 4000 10000 但是 默认情况下 大垃圾箱的列宽很大 有没有办法让这个大垃
  • python:UnboundLocalError:赋值前引用的局部变量“open”[重复]

    这个问题在这里已经有答案了 def read lines readFileName readfile txt f open readFileName r contents f read and so on read lines 当我运行这个
  • 进行异步调用时,“yield”在龙卷风中如何工作?

    最近我在学习龙卷风简介 我遇到了以下代码 class IndexHandler tornado web RequestHandler tornado web asynchronous tornado gen engine def get s
  • Tkinter 如何根据此组合框自动更新第二个组合框

    我在 Tkinter Python 中遇到了组合框更新的问题 我有两个组合框 组合框A with values A B C and 组合框B 我想要的是 当值A在组合框中选择A然后在组合框中B显示值 1 2 3 当值B在组合框中选择A然后在
  • 收到“/:未找到事件。”使用 PyCharm 远程调试器时

    当我使用 PyCharm 通过 ssh 进行远程调试时tcsh shell 服务器 很多时候它停止工作 并显示 未找到事件 更具体地说 我在 pycharm 调试控制台中遇到以下内容 ssh username hostserver 22 p
  • CryptoJS 和 Pycrypto 一起工作

    我正在使用 CryptoJS v 2 3 加密 Web 应用程序中的字符串 并且需要在服务器上使用 Python 对其进行解密 因此我使用 PyCrypto 我觉得我错过了一些东西 因为我无法让它工作 这是JS Crypto AES enc
  • 执行许多插入重复键更新错误:未使用所有参数

    所以我一直在尝试使用 python 2 7 15 使用 mysql connector 执行此查询 但由于某种原因 它似乎不起作用并且总是返回错误 并非所有参数都被使用 表更新有一个主键 即 ID 这是我尝试运行此 SQL 的查询 sql
  • 对 Python 列表元素进行分组

    我有一个 python 列表 如下所示 my list 25 1 0 65 25 3 0 63 25 2 0 62 50 3 0 65 50 2 0 63 50 1 0 62 我想根据以下规则对它们进行排序 1 gt 0 65 0 62 l
  • 重新安装后使用 pandas dataframes 时出现问题

    我已经重新安装了 Python 和 Anaconda 现在面临以下问题 在我将 pkl 文件加载到数据帧并尝试 查看 该文件后 如下所示 df pd read pickle example pkl df 我收到错误 AttributeErr
  • 将同一 numpy 数组的两个视图组合成单个视图而不复制数组?

    我有一个大型 2d numpy 数组 我想删除它的子集并处理函数剩下的内容 我需要对许多子集执行此操作 因此理想情况下我不想每次都创建数组的副本 该函数不会更改数组中的任何值 mat np load filename mat 1 mat i

随机推荐