首页 > 解决方案 > 每n步执行一次while循环

问题描述

如何让for循环中,每执行7次循环后,执行某个动作,然后循环继续执行7次?

现在我有一个循环使用 Python + applescript 执行一些操作。我尝试使用 while 来创建一个应该在每 7 步后执行的条件,然后使用 excel 继续循环。循环工作,一切都很好。但是在while开始执行的那一刻——它不想从头开始循环,它想继续执行while,因为count变量从excel文件中获取行。如何解决?

from subprocess import Popen, PIPE
import xlrd

def main():
    apple_script = '''
         code
       '''
    workbook = xlrd.open_workbook('test.xlsx')
    sheet = workbook.sheet_by_index(0)
    count = 1
    for cell in sheet.col(0):
        p = Popen(['osascript', '-'], stdin=PIPE, stdout=PIPE, stderr=PIPE, universal_newlines=True)
        stdout, stderr = p.communicate(apple_script)
        count += 1
        while count >= 7:
            app_script = '''
                 code
                '''
            p = Popen(['osascript', '-'], stdin=PIPE, stdout=PIPE, stderr=PIPE, universal_newlines=True)
            stdout, stderr = p.communicate(app_script)
            break
if __name__ == "__main__":
    main()

标签: pythonpython-3.xfor-loopwhile-loopapplescript

解决方案


这是一种方法,每个循环保留一个计数器,然后您可以 %7 该数字并在每 7 个循环期间执行一个过程:

x=0
while x < 50:
   if x % 7 == 0:
      print(f"Loop for Every Seven: {x}")
   x = x + 1

输出:

Loop for Every Seven: 0
Loop for Every Seven: 7
Loop for Every Seven: 14
Loop for Every Seven: 21
Loop for Every Seven: 28
Loop for Every Seven: 35
Loop for Every Seven: 42
Loop for Every Seven: 49

推荐阅读