如何在前一个字符串后面打印字符

时间:2018-12-15 23:22:33

标签: python string output

因此,简单地说,我想知道如何执行此操作:

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

我希望我已经对此进行了充分的解释以至于理解!任何帮助将不胜感激。谢谢!

3 个答案:

答案 0 :(得分:2)

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

TransactionScope

您可以在此处找到其说明: Python 3 library

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

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

但是当您不将输出重定向到文件stdout时,则不可行。你可以找到原因 there

答案 1 :(得分:1)

这应该在交互式环境中吗?如果是,则必须处理您使用提供的库来控制输出。对于常规标准库,可以使用回车符\r进行覆盖。玩:

import sys

msg1 = "Hello World"
msg2 = "Im Back Here!"
sys.stdout.write(msg1)
sys.stdout.write("\r{}{}".format('\r', msg2, msg1))
sys.stdout.write('\n')

sys.stdout.write(msg1)产生输出Hello World,而行sys.stdout.write("\r{}{}".format(msg2, msg1))将光标移回行首,打印Im Back Here!,后跟Im Back Here! 。我添加了换行符只是为了避免弄乱shell窗口。

如果您想要与指定的输出完全相同,并且Hello World出现两次(第一次后跟换行符),则可以从sys.stdout.write("{}\n".format(msg1))开始,它将产生输出: / p>

Hello World
Im Back Here!Hello World

答案 2 :(得分:1)

尝试一下:

l = []
l.append("Hello World")
l.append("Im Back Here!")
l.reverse()


print(''.join(l))

或者这个:

import sys
def insert_str(string, str_to_insert, index):
    return string[:index] + str_to_insert + string[index:]
s1 = "Hello World"
s2 = "Im Back Here!"

sys.stdout.write(insert_str(s2,s1,len(s2)))

两者都给出相同的结果,并且代码在这里:https://onlinegdb.com/BJGCJQml4