首页 > 解决方案 > 如何在前一个字符串后面打印字符

问题描述

所以简单地说,我想知道如何做到这一点:

import sys
sys.stdout.write("Hello World")

=> Hello World

#print something to go left maybe?
sys.stdout.write("Im Back Here!")

=> Im Back Here!Hello World

我希望我已经解释得足够清楚了!任何帮助将不胜感激。谢谢!

标签: pythonstringoutput

解决方案


您可以使用以下方法更改光标位置:

sys.stdout.seek(offset[, whence])

你可以在这里找到它的描述: Python 3 library

但是使用 write 方法会覆盖 stdout,因此您需要以某种方式记住输出。
解决方案示例:

import sys

out = ""

def append(s):
    global out
    sys.stdout.seek(0, 2)
    sys.stdout.write(s)
    out += s

def append_left(s):
    global out
    sys.stdout.seek(0,0)
    sys.stdout.write(s + out)
    out = s + out

append("Hello World")
append_left("Im Back Here!")

但是,当您不将输出重定向到文件时,stdout 是不可搜索的。你可以在 那里找到原因。


推荐阅读