簡體   English   中英

如何從python打印\\ [和\\]到終端?

[英]How to print \[ and \] to terminal from python?

我能夠使用諸如print "\\033[31m red text \\033[0m"代碼將python的ANSI顏色代碼從python打印到終端,該命令以紅色打印“ red text”。

但是,在換行時,終端仍會計算不可見的控制字符,因此文本會不正確地換行,就好像行比實際的要長。 反向搜索也很奇怪,顯示的文本與光標下的實際內容不匹配。

以下鏈接(和其他鏈接) https://wiki.archlinux.org/index.php/Color_Bash_Prompt#Regular_user_2似乎表明我需要將顏色代碼包裝在\\[\\]以便終端可以將光標正確放置在屏幕。 但是,當我在python中print "\\[\\033[31m\\]"時,括號會顯示在屏幕上。

如何從python將\\[\\]控制字符發送到終端?

(我發現顏色庫(例如colored )有相同的問題)

請勿在顏色代碼周圍使用[]。 只需創建以下變量即可。

red = '\033[31m'
print red 

基於@chepner的評論-我的問題涉及修改終端中的PS1變量以獲得彩色提示。

從python直接打印\\[\\]可以在屏幕上顯示這些字符,但是當傳遞給PS1 ,這些字符是不可見的,彩色文本可以正確顯示並正確包裝在屏幕上。

在Bash提示與Python中:

  • \\[ == '\\001'
  • \\] == '\\002'

資源

暫無
暫無

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

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