有没有办法在python中清除您的打印文本?

时间:2013-10-25 18:12:28

标签: python clear

大家好我很想知道如何在python中清除像print(“example”)这样的东西,但我似乎无法找到或想出任何东西。

print("Hey")
>Hey

现在我需要清除它,然后写一些新文本。

print("How is your day?")

它会打印出来。

  

>How is your day?

但是我想清除“嘿”,所以用户不应该同时看两个,看起来有点混乱。

6 个答案:

答案 0 :(得分:10)

import os
os.system('cls')

在unix上使用os.system('clear')(mac和linux)。如果您不想向上滚动,那么可以执行此操作:

os.system("printf '\033c'")也应该摆脱回滚。适用于所有系统的东西:

import os
os.system('cls' if os.name == 'nt' else "printf '\033c'")

答案 1 :(得分:1)

我想这就是你想要做的:

  

将光标向上一行并删除该行

这可以像使用下面的代码一样完成

import sys
import time

def delete_last_line():
    "Use this function to delete the last line in the STDOUT"

    #cursor up one line
    sys.stdout.write('\x1b[1A')

    #delete last line
    sys.stdout.write('\x1b[2K')


########## FOR DEMO ################
if __name__ == "__main__":
    print("hello")
    print("this line will be delete after 2 seconds")
    time.sleep(2)
    delete_last_line()
####################################

答案 2 :(得分:0)

好吧;我有一个临时方法:-

print('Hey', end = '')

for i in range(4):
    print('\b', end = '')
print('How is your day?')

答案 3 :(得分:0)

转义符\r(回车),表示“从本行开头开始打印”。 但是某些操作系统将其用作“换行符”。 以下适用于 Linux:

import time
import sys
#first text
print('Hey.', end="")
#flush stdout
sys.stdout.flush()
#wait a second
time.sleep(1)
#write a carriage return and new text
print('\rHow is your day?') 

答案 4 :(得分:-1)

import time
Dots = "."
total = 0
count = 0
while count < 5:
    if total<1:
        print("[+]Saving" + Dots,end="")
    total+=1
    time.sleep(1)
    print(Dots,end="")

此代码可以正常工作...

答案 5 :(得分:-2)

import os
os.system('clear')

有效。清除您的东西就好了。