如何在 Windows 10 控制台中使用对 ANSI 转义序列的新支持?

2024-02-04

最新的 Windows 10 更新包括支持 ANSI 转义序列 http://www.nivot.org/blog/post/2016/02/04/Windows-10-TH2-%28v1511%29-Console-Host-Enhancements在 conhost.exe 中。

我已经能够确认 cmd.exe 中正确获取了转义序列,因此我进行了必要的更新。特别是,我尝试输入prompt $e[?25l,隐藏光标,然后prompt $e[?25h,再次显示光标。

但是,如果我启动 Python 解释器,然后执行以下操作:

>>> import sys
>>> sys.stdout.write("\033[?25l")

嗯,光标没有隐藏。如何以正确的方式进行设置,以便控制台能够从 Python 获取转义序列?


问题是 Python 解释器不支持 ANSI 转义序列的处理。 ANSI 序列在 Windows 命令提示符下工作,因为cmd确实使他们能够。如果从命令提示符启动 Python,您会发现 ANSI 序列确实有效,包括用于启用和禁用光标的序列。那是因为cmd已经为该控制台窗口启用了它们。

如果你想要一些可以单击的东西来启动Python解释器并启用ANSI转义,你可以创建一个快捷方式来运行类似的命令cmd /c C:\PythonXY\python.

另一个更难的解决方案是使用 ctypes 通过调用以下命令来启用控制台窗口的 ANSI 转义序列处理:SetConsoleModeWindows API 与ENABLE_VIRTUAL_TERMINAL_PROCESSING https://msdn.microsoft.com/en-us/library/windows/desktop/ms686033(v=vs.85).aspx#ENABLE_VIRTUAL_TERMINAL_PROCESSING标志设置。例如:

import ctypes

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

如何在 Windows 10 控制台中使用对 ANSI 转义序列的新支持? 的相关文章

  • 如何在Python中流式传输和操作大数据文件

    我有一个相对较大 1 GB 的文本文件 我想通过跨类别求和来减小其大小 Geography AgeGroup Gender Race Count County1 1 M 1 12 County1 2 M 1 3 County1 2 M 2
  • 使用 pygame 显示 unicode 符号

    我检查了其他答案 但不明白为什么我的代码错误地显示 This is what I currently see https i stack imgur com 8tNIK png 这是关于文本渲染的相关代码 font pygame font
  • 补丁 - 为什么相对补丁目标名称不起作用?

    我已经从模块导入了一个类 但是当我尝试修补类名而不使用模块作为前缀时 出现类型错误 TypeError Need a valid target to patch You supplied MyClass 例如 以下代码给出了上述错误 imp
  • Kivy - 有所有颜色名称的列表吗?

    在 Kivy 中 小部件 color属性允许输入其值作为字符串颜色名称 也 例如在 kv file Label color red 是否有所有可能的颜色名称的列表 就在这里 来自Kivy 的文档 https kivy org doc sta
  • Python 2.7 中的断言对我来说不起作用示例assertIn

    我的 Mac 上安装了 python 2 7 通过在终端中运行 python v 进行验证 当我尝试使用任何新的 2 7 断言方法时 我收到 AtributeError 我看过http docs python org 2 library u
  • Pandas:如果单元格包含特定文本则删除行

    pandas 中的这段代码不起作用 如果该列包含提供的任何文本 数字 我希望它删除该行 目前 我只能在单元格与我的代码中传递的确切文本匹配时才能使其工作 因为它只删除显示 Fin 的单元格不是金融或金融 df2 df df Team Fin
  • 搜索多个字段

    我想我没有正确理解 django haystack 我有一个包含多个字段的数据模型 我希望搜索其中两个字段 class UserProfile models Model user models ForeignKey User unique
  • 如何在 Python 中加密并在 Java 中解密?

    我正在尝试在 Python 程序中加密一些数据并将其保存 然后在 Java 程序中解密该数据 在Python中 我像这样加密它 from Crypto Cipher import AES KEY 1234567890123456789012
  • 如何使用文本相似性删除 pandas 数据框中相似(不重复)的行?

    我有数千个数据 这些数据可能相似也可能不相似 使用 python 的默认函数 drop duplicates 并没有真正的帮助 因为它们只检测相似的数据 例如 如果我的数据包含类似以下内容怎么办 嗨 早上好 嗨 早上好 Python 不会将
  • Emacs 24.x 上的 IPython 支持

    我对 IPython 与 Emacs 的集成感到困惑 从 Emacs 24 开始 Emacs 附带了自己的python el 该文件是否支持 IPython 还是仅支持 Python 另外 维基百科 http emacswiki org e
  • 如果在等待“read -s”时中断,在子进程中运行 bash 会破坏 tty 的标准输出吗?

    正如 Bakuriu 在评论中指出的那样 这基本上与BASH 输入期间按 Ctrl C 会中断当前终端 https stackoverflow com questions 31808863 bash ctrlc during input b
  • Django send_mail SMTPSenderRefused 530 与 gmail

    一段时间以来 我一直在尝试使用 Django 从我正在开发的网站接收电子邮件 现在 我还没有部署它 并且我正在使用Django开发服务器 我不知道这是否会影响它 这是我的 settings py 配置 EMAIL BACKEND djang
  • 在 Windows 上使用 apache mod_wsgi 运行 Flask 应用程序时导入冲突

    我允许您询问我在 Windows 上使用您的 mod wsgi portage 托管 Flask 应用程序时遇到的问题 我有两个烧瓶应用程序 由于导入冲突 只有一个可以同时存在 IE 如果请求申请 1 我有回复 然后 如果我请求应用程序 2
  • .pyx 文件出现未知文件类型错误

    我正在尝试构建一个包含 pyx 文件的 Python 包 pyregion 但在构建过程中出现错误 检查以下输出 python setup py build running build running build py creating b
  • 用 python 编写的数学语法检查器

    我需要的只是使用 python 检查字符串是否是有效的数学表达式 为了简单起见 假设我只需要 运算符 也作为一元 带有数字和嵌套括号 为了完整性 我还添加了简单的变量名称 所以我可以这样测试 test 3 2 1 valid test 3
  • SocketIO + Flask 检测断开连接

    我在这里有一个不同的问题 但意识到它可以简化为 如何检测客户端何时从页面断开连接 关闭其页面或单击链接 换句话说 套接字连接关闭 我想制作一个带有更新用户列表的聊天应用程序 并且我在 Python 上使用 Flask 当用户连接时 浏览器发
  • 从 NumPy 数组到 Mat 的 C++ 转换 (OpenCV)

    我正在围绕 ArUco 增强现实库 基于 OpenCV 编写一个薄包装器 我试图构建的界面非常简单 Python 将图像传递给 C 代码 C 代码检测标记并将其位置和其他信息作为字典元组返回给 Python 但是 我不知道如何在 Pytho
  • 当数据库不是 Django 模型时,是否可以使用数据库中的表?

    是否可以从应用程序数据库中的表获取查询集 该表不是应用程序中的模型 如果我有一个不是名为 cartable 的模型的表 从概念上讲 我想这样做 myqueryset cartable objects all 有没有相对简单的方法来做到这一点
  • Django Admin 中的反向内联

    我有以下 2 个型号 现在我需要将模型 A 内联到模型 B 的页面上 模型 py class A models Model name models CharField max length 50 class B models Model n
  • Django 与谷歌图表

    我试图让谷歌图表显示在我的页面上 但我不知道如何将值从 django 视图传递到 javascript 以便我可以绘制图表 姜戈代码 array Year Sales Expenses 2004 1000 400 2005 1170 460

随机推荐

  • 计算游戏积分的sql

    我有一张桌子 上面有足球比赛 桌上游戏 id team home varchar team away varchar team home goals INT team away goals INT 要插入我这样做 insert into g
  • Docker Compose - 使用容器环境变量的命令

    使用 Docker Compose 将主服务和从服务链接在一起 因此 Compose 会自动向从属容器注入环境变量 其中包含连接到其他主容器所需的各种端口和 IP 该服务通过命令行参数接受主站的 IP 端口 所以我在我的commands m
  • 我可以只在 HTML 标签上添加属性吗?

    我是否可以向 HTML 标记添加我想要的任何属性 以便稍后可以使用 javascript 检索它们的值 例如 a href something html a 如果这不起作用 您将如何存储这样的任意信息 Edit 由于组成 HTML 属性在技
  • IDENTITY 未正确生成种子和增量

    我将列 ID 设置为 IDENTITY 种子和增量 1 1 但是 它不会从 1 开始计数 而是从 2 开始 当我插入下一行时 它设置 ID 7 而不是 2 为什么会发生这种情况以及如何修复它 我编写了表格并检查了管理工作室 它实际上是一个I
  • 类之间的 Java 共享条件抛出 IllegalMonitorStateException: null

    我有这样的结构 锁包装器 用于存储锁 条件和响应中的对象 public class LockWrapper private Lock lock private Condition myCondition private MyObject m
  • Python Beautiful Soup:从元素获取文本

    我正在循环遍历 type 的元素 td 但我正在努力提取 td text HTML td class cell Brand Name 1 br a class tip title This title Authorised Reseller
  • 从其他计算机访问 Django 应用程序

    我正在本地计算机上使用 Django 开发一个 Web 应用程序 现在我希望网络上的其他计算机可以访问我的网络应用程序 我们有一个共同的网络驱动器 F 我应该将文件放在该驱动器上 还是可以在命令提示符中编写类似 python manage
  • 在线解释器/编译器如何处理恶意代码? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在没有解决方案的情况下使用 F# 脚本的 nuget 安装包?

    我正在尝试编写 F 脚本文件 所以我使用Visual studio 文件 gt 新建 gt 文件 gt F 脚本文件 生成一个新的fsx文件 现在我想通过打开包管理器控制台并输入来添加对 FSharpData 的引用 Install Pac
  • 直到第二次刷新才设置 Cookie

    我在第 1 页有一个表格
  • asp.net mvc 和 sql 查询

    我使用 Web 表单开发网站 现在我有一个项目 我使用 MVC3 框架和 Rzor 我的问题是关于 MVC 中的一些基本设计模式 我有一个网页 在左侧我将从 SQL 表中提取类别 在中心我将查询另一个 Sql 表 整个页面上还有一些其他内容
  • 如何使用 Java 验证 Azure B2C ID 令牌的 JWT 签名?

    如何使用 Java 验证 Azure B2C ID 令牌的 JWT 签名 我已成功使用 google open id connect 验证了签名 但尚未成功验证 Microsoft Azure B2C jwt id 令牌的签名 我在这里使用
  • 如何显示bash支持的所有颜色?

    有一天 我输入了命令 echo 033 32mHELLOBASE 033 m 在 gnome bash shell 中 终端向我显示了一个绿色的 HELLOBASH 字符串 我发现这很有趣 根据我的经验和多次测试 我可以改变 从 0 到 4
  • 我可以在 ng-repeat 循环中避免使用对象变量名称吗?

    当定义 ng repeat 指令来迭代数组时 语法指定ng repeat friend in friends 然后在模板中使用插值运算符 如下所示 friend name 是否可以将属性分配给当前项范围 而不是其中的变量 所以我可以打电话
  • 如何使用 swift 3 xcode 8 在核心数据中预加载数据库

    我有一个包含数据的数据库 我想将其预加载到应用程序中 在 swift 3 之前它可以工作 我已经遵循了本教程 http www appcoda com core data preload sqlite database http www a
  • 共享内存和IPC [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在阅读有关共享内存的教程 发现以下陈述 如果一个进程希望通知另一个进程新数据已插入共享内存 则必须使用信号 消息队列 管道 套接字
  • 检测当前设备(UWP)是否支持共享 UI

    我使用 c xaml 创建了适用于 Windows 10 设备的 UWP 应用程序 在应用程序中 我有一个共享功能 可以调用DataTransferManager ShowShareUI 这在台式机 平板电脑和移动设备上按预期工作 但在我的
  • 如何使用 Java 中的 MySQL 转义字符串文字中的单引号

    我有一个 MySql 表person details其中包含p id and p name 现在 如果我想插入一条记录 其中 p name 包含单引号 我会这样执行 insert into person details values 1 D
  • 使用 Rake 运行 Ruby 单元测试

    我正在研究使用 Rake 构建工具来自动运行单元测试 我在网上搜索过 但所有示例都是使用 Rails 的 我通常只编写小型命令行程序或简单的 Sinatra 应用程序 因此 我想出了以下 可能很糟糕 的解决方案 它只是模拟我在命令行上执行的
  • 如何在 Windows 10 控制台中使用对 ANSI 转义序列的新支持?

    最新的 Windows 10 更新包括支持 ANSI 转义序列 http www nivot org blog post 2016 02 04 Windows 10 TH2 28v1511 29 Console Host Enhanceme