【问题标题】: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 的一个实例托管,该实例由连接到它的所有进程共享。

标签: python windows printing carriage-return line-endings


【解决方案1】:

试试这个:

print('Checking : ' + str(i), end='\r')

【讨论】:

  • 有时有效,但它只是闪烁并直接消失。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-03
  • 2017-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-24
相关资源
最近更新 更多