使用python浏览excel工作表时,循环不会中断
我想转到每个excel文件,在特定的工作表中,找到文本“Sen’s slope:”并打破循环找到行和列,然后打印该文本旁边的值 有谁能帮我找出这个密码的错误吗。? 感谢您的帮助使用python浏览excel工作表时,循环不会中断,python,Python,我想转到每个excel文件,在特定的工作表中,找到文本“Sen’s slope:”并打破循环找到行和列,然后打印该文本旁边的值 有谁能帮我找出这个密码的错误吗。? 感谢您的帮助 import os from xlrd import open_workbook excelfiles=[] for i in os.listdir(os.getcwd()): if '.xlsm' in i: excelfiles.append(i) cannotfiles=[] slope
import os
from xlrd import open_workbook
excelfiles=[]
for i in os.listdir(os.getcwd()):
if '.xlsm' in i:
excelfiles.append(i)
cannotfiles=[]
slope=[]
for f in excelfiles:
print f
wb = open_workbook(f)
sheet = wb.sheet_by_name('Mann-Kendall trend tests')
j=0
for j in range(0,50):
i=0
for i in range(0,50):
print sheet.cell(i,j).value
if sheet.cell(i,j).value == "Sen's slope:":
break
print sheet.cell(i,j+1).value
谢谢我猜你的问题是在的中有一个的,而中断只会从内部的中断。您可以在一个for循环中移动print函数,这也可以让您检测多次出现的“Sen's slope:”。或者,有很多方法可以打破这两个循环。我猜你的问题是在
for
的中有一个for
,而这个中断只会打破for
的内部。您可以在一个for循环中移动print函数,这也可以让您检测多次出现的“Sen's slope:”。或者,有一系列方法可以中断两个循环。您指定了中断以仅退出内部for循环
请尝试以下代码:
for j in range(0, 50):
for i in range(0, 50):
if "something":
break
else:
continue
break
您指定了break以仅退出内部for循环
请尝试以下代码:
for j in range(0, 50):
for i in range(0, 50):
if "something":
break
else:
continue
break
您可以在此处放置两个if
语句,一个用于断开内部循环,另一个用于断开外部循环:
当您中断内部循环时,j
的值将与上次迭代的值相同,然后,控制流将转到最后一行,即内部for
循环之后的一行,并将计算第二个if
语句以中断外部循环。您可以在此处放置两个if
语句,一个用于中断内部循环,另一个用于中断外部循环:
当您中断内部循环时,j
的值将与上一次迭代的值相同,然后控制流将转到最后一行,即内部for
循环之后的那一行,并将计算第二个if
语句以中断外部循环。python正在单元格中读取我的字符串(未中断)最后出现错误“数组索引超出范围”。我猜你只是打破了内部循环。这里有两个问题,循环和错误的赋值。在Python中,你不需要像在C或Java中那样为循环声明变量,因此不需要j=0
和i=0
。第二件事,你只打破了内部循环,因此外部循环将继续ue迭代。如果以下答案之一解决了您的问题,您应该接受它(单击相应答案旁边的复选标记)。这可以做两件事。它让所有人都知道您的问题已经得到了满意的解决,并让帮助您的人获得了帮助。有关完整的解释,请参阅。python正在单元格中读取我的字符串(未中断),最后出现了一个错误“数组索引超出范围”。我猜你只是打破了内部循环。这里有两个问题,循环和错误的赋值。在Python中,你不需要像在C或Java中那样为循环声明变量,因此不需要j=0
和i=0
。第二件事,你只打破了内部循环,因此外部循环将继续ue迭代。如果以下答案之一解决了您的问题,您应该接受它(单击相应答案旁边的复选标记)。这有两个作用。它让每个人都知道您的问题已经得到了满意的解决,并让帮助您的人获得了帮助。有关完整的解释,请参阅。我如何打破整个循环?使用exit?但当我打印单元格值时,它实际上会经过该单元格而没有识别它。在您的代码中,它会发现它是一个条目,停止读取该行,然后继续读取下一行。因此它会一直读取到下一行。我如何打破整个循环?使用exit?但当我打印单元格值时,它实际上会通过该单元格而不识别它。在代码中,它会找到条目,停止读取该行,然后继续读取到下一行。因此它会一直读取到下一行。它实际上是通过带有“Sen's slope”的单元格而没有识别出来,并且循环没有中断。@Vijaynitk:您是否将Mani代码示例中的if
语句更改为if sheet.cell(i,j)。value==“Sen's slope:
?@Mani Kandan:谢谢。它实际上是通过带有“Sen's slope”的单元格的在没有识别的情况下,循环没有中断。@Vijaynitk:您是否将Mani代码示例中的if
语句更改为if sheet.cell(i,j)。value==“Sen's slope:”
?@Mani-Kandan:谢谢。谢谢。工作正常。谢谢。工作正常。