在 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+‘ ‘ (打印新内容时删除打印的旧内容)

带有信用卡刷卡和打印机的 Windows 移动设备?

使用带有R内核的jupyter笔记本,如何通过引用来抑制打印结果更新data.table?

在 Windows 或 Linux 上运行时函数的行为不同