Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法替换Python中以前输出的文本?_Python_Python 3.x - Fatal编程技术网

有没有办法替换Python中以前输出的文本?

有没有办法替换Python中以前输出的文本?,python,python-3.x,Python,Python 3.x,有些事我想做,但不幸的是我完全不知道该怎么做,我怀疑有人问过。所以,基本上,我想要的是程序输出前面区域中的文本。我会尽力解释的 假设我将以下文本输出到屏幕: =========================================================================================== ============================================================================

有些事我想做,但不幸的是我完全不知道该怎么做,我怀疑有人问过。所以,基本上,我想要的是程序输出前面区域中的文本。我会尽力解释的

假设我将以下文本输出到屏幕:

===========================================================================================



===========================================================================================
我的问题是,有没有一种方法,不用PyGoGAME,用一个特定的文本替换行之间的空行,而不用再次打印线条?例如,使用pythonidle或直接在终端中实现这一点是可能的,还是只可能使用pygame或类似的东西

它看起来像这样,例如:

===========================================================================================

Hello World!

===========================================================================================

虽然应该有多个库来处理此任务,但您应该查看
curses
colorama
。我不确定
curses
,但这在
colorama
中是绝对可能的(通过
pip
安装)

下面是一个例子:

from colorama import *

def pos(x, y):
    return '\x1b['+str(y)+';'+str(x)+'H'

def display():
    init() #just for safety here; needed in Windows
    print(Fore.RED+pos(30, 10)+ 'This string is a different place!')

display()
您可以将该库用于这种纯文本UI。下面是一个简单的示例,首先打印水平行,然后在一段时间后,在前一行上添加一个字符串

import time, curses

scr = curses.initscr()

scr.addstr(0, 0, "#" * 80)
scr.addstr(2, 0, "#" * 80)
scr.refresh()

time.sleep(1)

scr.addstr(1, 35, "Hello World")
scr.refresh()

例如,给定文件
test.dat
中的输出:

===========================================================================================



===========================================================================================
vim
中的一行简单代码将产生您想要的输出:

:3s/^$/Hello World!
如果要在脚本中自动执行此操作:
hello.sh

#!/bin/bash
ex test.dat <<-EOF
  :3s/^$/Hello World!
  wq " Update changes and quit.
EOF

在同一行中,您可以使用回车符
\r
。跨越多条线,你应该看看。例如,请参见。
===========================================================================================

Hello World!

===========================================================================================