【问题标题】:how to make a loop over and over until we stop or pause it如何一遍又一遍地循环,直到我们停止或暂停它
【发布时间】:2016-11-18 11:41:08
【问题描述】:

我最近在这里问了一个问题how can I read each line of a xls file with pausing,我得到的答案解决了我的问题。代码如下

import time
import pandas as pd
import os
import xlrd
# at first I try to know how many rows and how many columns I have 
workbook = xlrd.open_workbook('myfile.xls')
for sheet in workbook.sheets():
    for row in range(sheet.nrows):
        for column in range(sheet.ncols):
            os.system('clear')
            print "value::: ", sheet.cell(row,column).value
            time.sleep(5.5)    # pause 5.5 seconds

我想要做的是以某种方式制作循环,使其到达 xls 行的末尾,然后一遍又一遍地返回开头,直到我停止它或有时暂停它,你知道怎么做吗?去做这个 ?

【问题讨论】:

  • 查看修改后的答案。

标签: python


【解决方案1】:

只需将它放在另一个循环中。例如,如果您想将整个事情重复 10 次,只需这样做:

for i in xrange(10):    
    for sheet in workbook.sheets():
        num_of_cells = sheet.nrows * sheet.ncols
        for cell in range(num_of_cells):
            row = int(cell / sheet.ncols)
            col = cell % sheet.ncols
            print "value::: ", sheet.cell(row, col).value
            time.sleep(5.5)    # pause 5.5 seconds

【讨论】:

  • 不是真的,由于条件 Traceback(最近一次调用最后一次)而出现错误:文件“my_prog2.py”,第 16 行,在 if 条件:NameError: name 'condition'没有定义也没有清除终端
  • @LearnerAlgorithm 您必须将condition 替换为您希望循环为真后退出的实际条件。
【解决方案2】:

我发现的最简单的方法可能是使用pythonKeyboardInterrupt 异常 - 当然,如果您可以在结束循环时停止整个脚本(通过按 Ctrl-C )。

for sheet in workbook.sheets():
    for row in range(sheet.nrows):
        for column in range(sheet.ncols):
            try:
                os.system('clear')
                print "value::: ", sheet.cell(row,column).value
                time.sleep(5.5)    # pause 5.5 seconds
            except KeyboardInterrupt:
                pass #insert here anything you'd like your script to do before it halts

【讨论】:

  • 它给了我一个错误,我像使用它一样除了 KeyboardInterrupt: pass Ctrl+C 这给了我一个语法错误文件“my_prog2.py”,第 16 行通过 Ctrl+C#insert 在这里任何你希望您的脚本在它停止之前执行 ^ SyntaxError: invalid syntax
  • 你为什么在你的脚本中写'Ctrl+C'? :) pass 只是一个独立的声明,基本上说“什么都不做”。删除'Ctrl+C'后试试。如果pass 之后的评论让您感到困惑,我的意思是您可以将pass 替换为您希望脚本在退出时执行的任何操作(写告别消息或关闭文件等)。
  • 正如我所说,我希望它继续下去,直到我通过关键字停止它或通过关键字暂停它。如果我删除 ctrl+C 它会继续,无论我推送什么关键字,它都不会停止或暂停并继续
  • 关键字是什么意思?您应该可以通过按 Ctrl-C(或 Ctrl-D)来停止任何进程。
  • Ctrl-C 或 D 将停止程序。如果我想暂停它然后单击另一个键盘并从它停止的时间开始怎么办?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-12
  • 1970-01-01
  • 1970-01-01
  • 2012-05-03
  • 2021-05-30
  • 2021-01-17
相关资源
最近更新 更多