"spans" 목록이 업데이트되지 않는 이유는 무엇인가요? 코드가 무한 루프에 빠지는 이유를 모르겠습니다.
pdf: https://www.sil.org/system/files/reapdata/62/99/18/62991811720566250411942290005522370655/40337_02.pdf
"차단" 예: https://jumpshare.com/s/y393jobqjfiye51gkexn
으아악내가 기대하는 것은 print(spans)가 "[]"를 출력한다는 것입니다. 그러나 코드는 이 지점에 도달하지 않습니다.
import fitz doc = fitz.open("cubeo/40337_02.pdf") page = doc[3] blocks = page.get_text("dict", flags = fitz.TEXTFLAGS_TEXT)["blocks"] for block in blocks: entries = [] if len(block["lines"]) > 3: # ignora legendas e número de página for line in block["lines"]: spans = [] for span in line["spans"]: spans.append({"text": span["text"].replace("�", " "), "size": int(span["size"]), "font": span["font"]}) # While there are spans left while True: # Delimits where an entry starts entry_first_position = None for i, span in enumerate(spans): if span["font"] == "Sb&cuSILCharis-Bold": entry_first_position = i break if entry_first_position is not None: # Delimits where an entry ends entry_last_position = None for i, span in enumerate(spans[entry_first_position:], start=entry_first_position): if span["font"] == "Sb&cuSILCharis-Bold": entry_last_position = i break if entry_last_position is not None: # Whole entry is added as a list append_list = spans[entry_first_position:entry_last_position] entries.append(append_list) spans = spans[:entry_first_position] + spans[entry_last_position:] else: break else: break print(spans)
건너뛰지 않음 span["font"] == "sb&cusilcharis-bold"
的第一个匹配项。所以 entry_last_position == entry_first_position
, 아무것도 삭제되지 않으며 무한 루프에 빠지게 됩니다.
그래서 목록의 다음 위치를 살펴보기 시작합니다
위 내용은 Python에서 반복하는 동안 목록을 업데이트하는 동안 오류가 발생했습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!