我想知道是否有可能删除你用Python打印的项目 - 不是从Python GUI,而是从命令提示符.例如
a = 0
for x in range (0,3):
a = a + 1
b = ("Loading" + "." * a)
print (a)
Run Code Online (Sandbox Code Playgroud)
所以它打印
>>>Loading
>>>Loading.
>>>Loading..
>>>Loading...
Run Code Online (Sandbox Code Playgroud)
但是,我的问题是我希望这一切都在一条线上,为此它会在其他东西出现时自行删除它.因此,不是打印"Loading", "Loading.", "Loading...
我希望它打印"Loading."
,然后它删除行上的内容并替换它,"Loading.."
然后删除"Loading.."
并替换它(在同一行)"Loading..."
.这很难描述.
ps我试图使用Backspace字符,但它似乎不起作用("\b"
)
谢谢
最新的Windows 10更新包括对 conhost.exe中的ANSI转义序列的支持.
我已经能够确认在cmd.exe中正确地获取了转义序列,所以我有必要的更新.特别是,我尝试输入prompt $e[?25l
,隐藏光标,然后prompt $e[?25h
再次显示光标.
但是,如果我启动Python解释器,然后执行以下操作:
>>> import sys
>>> sys.stdout.write("\033[?25l")
Run Code Online (Sandbox Code Playgroud)
好吧,光标没有隐藏.如何以正确的方式设置,以便控制台能够从Python获取转义序列?
我正在尝试使用Windows上的node.js将一个ANSI转义序列写入stdout,但它似乎不起作用.
具体来说,我使用ConEmu,它支持子代 ANSI代码.我创建了一个应该重命名当前控制台选项卡的测试文件:
process.stdout.write('\x1b]9;3;"abc"\x1b\x5c');
Run Code Online (Sandbox Code Playgroud)
但是,当我运行它时没有任何反应.如果我运行node test > out.txt
,则将正确的字节写入输出文件.
为什么转义序列不起作用?
python ×2
cmd ×1
node.js ×1
printing ×1
python-3.2 ×1
python-3.x ×1
terminal ×1
windows ×1
windows-10 ×1