python - 每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()
解决方案
这是一种方法,每个循环保留一个计数器,然后您可以 %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
推荐阅读
- r - 银行客户流失的卡方检验
- python - 执行 pyinstaller 生成的可执行文件时出错
- c# - 使用 FluentFTP 从 FTP 并发下载多个文件,最大值
- android - AWS Device Farm - java.lang.ClassNotFoundException:找不到类“androidx.test.runner.AndroidJUnitRunner”
- javascript - 设置保持正确数字输入的条件
- javascript - 如何在这个 React 组件中去抖动搜索功能?
- python - 如何在 Django Rest Framework 中的外键字段上使用过滤器
- javascript - 将数据挂载到 React 状态返回错误
- sql - 具有日期和类别维度的 SQL 表
- android - viewModelScope 在 viewPager 中被取消