如何在MacOS zsh终端用Python实现输入行提交后删除并替换
解决方案
要实现你需要的效果,得借助ANSI终端转义序列控制光标位置和行内容,MacOS的zsh终端原生支持这些序列。具体实现步骤和代码如下:
代码示例
# 获取用户输入 user_input = input("Enter an integer: ") # 回到输入行、清除整行后输出新内容 print("\033[A\r\033[2K已输入整数:{}".format(user_input))
各转义序列的作用
\033[A:将光标向上移动一行(用户回车后光标会默认跳到下一行,这一步是回到输入内容所在的行)\r:把光标定位到当前行的开头\033[2K:清除当前整行的所有内容(无论光标处于什么位置)
执行后,用户输入整数并回车,原来的Enter an integer: [输入的数字]整行会被完全删除,随后在原位置显示你指定的新内容。
补充说明
如果需要在清除行后输出多行内容,直接在清除操作后正常打印即可,光标会自动定位到对应位置。zsh默认开启ANSI转义支持,无需额外配置。
内容的提问来源于stack exchange,提问作者NGC3992
相关产品推荐
相关产品推荐

