簡體   English   中英

ANSI 轉義碼在 IDLE 上不起作用……(python)

[英]ANSI escape codes not working on IDLE… (python)

我正在制作一個涉及ANSI 轉義碼的程序,在我切換回 IDLE 之前,它們在repli上都運行良好(兩者都為 3.9)。 但它不起作用:
閑置的
它應該看起來像這樣:
復制

之前我看過幾篇帖子抱怨 IDLE 不支持這些轉義序列,因為它不是終端,所以我嘗試直接從執行此操作,但野獸符號仍然出現,這次是一個帶框的問號:
命令

我知道它不會直接從 IDLE 工作,所以我想知道你是否可以將像這樣的軟件導入 python 中?

Powershell 工作雖然... 電源外殼圖片

PS請不要告訴我導入colorama或其他東西。 我真的希望這樣。 我也無法立即訪問 iPython(即使我想這樣做),所以這對我來說不是一個真正的選擇..:除非我必須:D

編輯:我在 python 程序中放置的代碼:

import sys, os

os.system("")

CSI = f"{chr(0x1B)}["

print(f"""{CSI}3m{CSI}1m{CSI}4m{CSI}31m
look at this""")

sys.stdout.flush() 

# I put the sys.stdout.flush() and os.system("") to try and fix the problem...

IDLE shell 不是終端仿真器,也不是生產環境。 到目前為止的決定是應該向程序開發人員展示他們的程序的 output 是什么,無需解釋。 這可能會在未來發生變化,但還沒有最終決定。

如果您使用的是 Windows,我相信它的控制台可以進入 ANSI 模式,但 Python 不會為您這樣做。 我不知道程序代碼是否可以這樣做。

據我所知,沒有包裝程序可以將 mintty 變成可導入的 python 模塊。 這沒有多大意義。 相反,您需要打開 mintty 或基於 mintty 的終端仿真器,例如 git bash,並在該終端中打開 python 而不是 CommandPrompt。

ANSI 代碼是一個廣義術語。 您必須指定您使用的代碼頁。 比如我的Windows是簡體中文。 因此,如果我想擺脫 Python 中的 UTF-8 默認值,我會將# coding: cp936放在腳本的第一行或第二行。 然后就可以讀寫簡體中文編碼的文本文件了。

第二個問題:

我可以做一個紅色/綠色/等嗎? 每個字符的字體並將其作為print('...', file=...) 這應該是可能的,因為存在彩色表情符號。

它應該可以工作,但我想知道我如何(如果可能的話)使用一些程序自動執行此操作,該程序生成包含這些字符的文件並使用之前的語句顯示它們。

干杯!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM