Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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 3.6中涵盖输出_Python_Python 3.x - Fatal编程技术网

如何在Python 3.6中涵盖输出

如何在Python 3.6中涵盖输出,python,python-3.x,Python,Python 3.x,我尝试用这段代码重写输出中的一行 import time print('Hello, world!', end='', flush=True) time.sleep(1) print('\rHi.') 我希望最后能得到这个: Hi. 但事实上,我得到了这个: Hi.lo, world! 那么,我该怎么办呢?\r只要将光标移到行的开头,您就必须覆盖已打印文本的其余部分,例如,用空格将其清空: import time start_text = "Hello, world!" replace

我尝试用这段代码重写输出中的一行

import time

print('Hello, world!', end='', flush=True)
time.sleep(1)
print('\rHi.')
我希望最后能得到这个:

Hi.
但事实上,我得到了这个:

Hi.lo, world!
那么,我该怎么办呢?

\r只要将光标移到行的开头,您就必须覆盖已打印文本的其余部分,例如,用空格将其清空:

import time

start_text = "Hello, world!"
replace_text = "Hi."

print(start_text, end='', flush=True)
time.sleep(1)
print("\r" + replace_text + " " * (len(start_text) - len(replace_text)))
# or: print("\r" + " " * len(start_text) + "\r" + replace_text)

我必须以这种方式知道前面的字符串长度。但在我的代码中,我无法获得长度。@coderben-如果您控制屏幕上打印的所有内容,请确保您可以保持最后打印行的长度-只需在打印周围写一个代理,或者更好,劫持sys.stdout。如果你真的无法控制输出,你必须猜测终端的宽度,典型的宽度是80,然后打印出那么多的空格,然后回滚。获取控制台宽度将取决于您使用的平台,tho。不管是哪种方式,如果您想进行奇特的控制台绘制,您可能还是希望探索该模块。