Python - 打印更新计数器不起作用

时间:2016-11-18 13:43:54

标签: python

这是我的代码。目标是打印一个计数器,用于更新在同一车道内检查的页面编号,替换旧的页面:

import time

start_page = 500
stop_page = 400

print 'Checking page ',

for n in range(start_page,stop_page,-1):
    print str(n),
    time.sleep(5) # This to simulate the execution of my code
    print '\r',

这不会打印任何内容:

$ python test.py
$ 

我使用Python 2.7.10,导致问题的行可能是print '\r',,因为如果我运行它:

import time

start_page = 500
stop_page = 400

print 'Checking page ',

for n in range(start_page,stop_page,-1):
    print str(n),
    time.sleep(5) # This to simulate the execution of my code
    #print '\r',

我有这个输出:

  $ python test.py 
    Checking page  500 499 498 497 496 495 494 493 492 491 490 489 488 487 486 485 484 483 482 481 480 479 478 477 476 475 474 473 472 471 470 469 468 467 466 465 464 463 462 461 460 459 458 457 456 455 454 453 452 451 450 449 448 447 446 445 444 443 442 441 440 439 438 437 436 435 434 433 432 431 430 429 428 427 426 425 424 423 422 421 420 419 418 417 416 415 414 413 412 411 410 409 408 407 406 405 404 403 402 401
  $

2 个答案:

答案 0 :(得分:-1)

试试这个:

import time

start_page = 500
stop_page = 400

print ('Checking page ')

for n in range(start_page,stop_page,-1):
    print(str(n))
    time.sleep(5) # This to simulate the execution of my code
    print('\r')

答案 1 :(得分:-2)

删除打印表达式后的逗号:

print 'Checking page ',
print str(n),
print '\r',
PS:因为我被问到,首先要注意的是print不是一个函数它是一个语句,因此它不会以相同的方式解释。 特别是在印刷案例中,添加','打印后将打印内容而不换行。

对于您的计划,特别是它正在做的是:

printing 'Checking page' -> NO \n here
printing n -> no \n here
printing '\r' -> again no '\n' here

由于您没有向输出发送任何新行,因此您的操作系统不会刷新数据。您可以在打印后添加一个sys.stdout.flush()(' \ r'),如果需要,可以查看它。

更多关于此处的打印声明。 https://docs.python.org/2/reference/simple_stmts.html#grammar-token-print_stmt

为什么我被贬低了? o.O