Python 删除打印语句中的字符

Python 删除打印语句中的字符,python,python-3.x,Python,Python 3.x,我正在尝试创建一个程序,它键入任何需要键入的内容,有时它会出错并加以纠正,就像一个实际的人正在键入一样,下面是我的代码: import time import sys import random import string import uuid def my_random_string(string_length=4): random = str(uuid.uuid4()) random = random.lower() random = random.replac

我正在尝试创建一个程序,它键入任何需要键入的内容,有时它会出错并加以纠正,就像一个实际的人正在键入一样,下面是我的代码:

import time
import sys
import random
import string 
import uuid

def my_random_string(string_length=4):
    random = str(uuid.uuid4())
    random = random.lower()
    random = random.replace("-","")
    return random[0:string_length]

def delay_print(s):
    for c in s:
        sys.stdout.write( '%s' % c )
        sys.stdout.flush()
        time.sleep(random.uniform(0.01,0.5))
        random_string = random.randint(0,6)
        if random_string == 5:
            sys.stdout.write(my_random_string(2))
            time.sleep(0.1)
            #delete the two characters

delay_print("Hello, and welcome to the Enrichment Centre")

我不知道如何删除我放置的两个字符。

退格字符
\b
将返回到上一个字符之前,但是需要将其输入到实际的空白处。最简单的方法是进入一个空间。但是,一个字符的间距太大,因此需要在空格之前再加一个退格。你想循环两次,把这两个随机字符都去掉。我这样做是为了让它看起来像是有人在打字:

    if random_string == 5:
        sys.stdout.write(my_random_string(2))
        sys.stdout.flush()
        time.sleep(0.1)
        for _ in range(2):
            sys.stdout.write('\b \b')
            sys.stdout.flush()
            time.sleep(0.1)

我认为这是不可能的。您可以使用
\r
返回到行的开头,然后从那里开始。您是否尝试过编写退格字符
\b
?@KeithHall只添加了一个正方形,而不是实际的正方形backspace@SylentNyte看见您需要键入一个backspace空格backspace,以使原来的内容消失。