在 Windows 上打印带有 end='\r' 的行似乎不起作用? [复制]
Posted
技术标签:
【中文标题】在 Windows 上打印带有 end=\'\\r\' 的行似乎不起作用? [复制]【英文标题】:Printing line with end='\r' on Windows doesn't seem to work? [duplicate]在 Windows 上打印带有 end='\r' 的行似乎不起作用? [复制] 【发布时间】:2020-01-02 20:31:42 【问题描述】:我正在创建一个质数查找脚本,我想打印当前活跃的数字。
def is_divisible(number: int, dividor: int) -> bool:
float_number = number / dividor
if float_number.is_integer():
return True
return False
def is_prime(number: int) -> bool:
"""
Returns a bool, whether the a number is a prime.
:param number: number
:return: bool (True if it is a prime, False if it's not a prime)
"""
tmp_numbers = set()
for i in range(2, number):
if any(is_divisible(i, n) for n in tmp_numbers):
continue
if is_divisible(number, i):
return False
tmp_numbers.add(i)
return True
number = 99999999
for i in range(2, 90000):
print("checking ".format(i), end="\r")
if is_prime(i) and is_prime(i + 4) and is_prime(i + 8):
print(i)
当我终止脚本时,我可以看到该行(“正在检查...”),但在执行时我看不到它。
【问题讨论】:
如果您使用的是 windows 这很正常,因为 cmd 只打印以新行结尾的字符串。它应该在linux上工作。我不了解 macOS 我正在使用 Pycharm IDE。这有什么不同吗? 你用的是什么操作系统? Windows 10 64 位 @AndreaOggioni,cmd.exe 与 Python 的控制台或一般的控制台没有直接关系。在这方面,cmd.exe 与 python.exe 或任何其他控制台应用程序没有什么不同。控制台由 conhost.exe 的一个实例托管,该实例由连接到它的所有进程共享。 【参考方案1】:试试这个:
print('Checking : ' + str(i), end='\r')
【讨论】:
有时有效,但它只是闪烁并直接消失。以上是关于在 Windows 上打印带有 end='\r' 的行似乎不起作用? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
带有 Windows 容器的 Docker 在 tcp 服务上支持 wcf
带有 Edge 的 Windows 10 Pro Kiosk - 如何跳过打印对话框
python笔记 print+‘ ‘ (打印新内容时删除打印的旧内容)