fixed some contitions
This commit is contained in:
@@ -243,24 +243,54 @@ def read_docx_content(doc_path: Path) -> List[str]:
|
||||
# 检查当前起始位置是否是 6 行一组模式
|
||||
def is_six_row_group(lines: list, start_idx: int) -> bool:
|
||||
"""检查从 start_idx 开始是否是 6 行一组"""
|
||||
if start_idx + 1 < len(lines):
|
||||
if start_idx + 5 < len(lines):
|
||||
return is_url_line(lines[start_idx + 1]) and \
|
||||
is_datetime_line(lines[start_idx + 2])
|
||||
is_datetime_line(lines[start_idx + 2]) and \
|
||||
is_url_line(lines[start_idx + 4]) and \
|
||||
is_datetime_line(lines[start_idx + 5])
|
||||
return False
|
||||
|
||||
# 检查当前起始位置是否是 5 行一组模式
|
||||
def is_five_row_group(lines: list, start_idx: int) -> bool:
|
||||
"""检查从 start_idx 开始是否是 5 行一组"""
|
||||
if start_idx + 4 < len(lines):
|
||||
return is_url_line(lines[start_idx + 1]) and \
|
||||
is_datetime_line(lines[start_idx + 2]) and \
|
||||
is_url_line(lines[start_idx + 4])
|
||||
return False
|
||||
|
||||
# 按组处理,每组独立判断 offset
|
||||
# 规则:如果第二行是网址且第三行是日期/时间,则当前 6 行为一组;否则丢弃第一行,继续判断
|
||||
# 规则:优先检查 6 行一组,如果是则合并 6 行;否则检查 5 行一组,如果是则合并 5 行并补充时间;否则丢弃第一行,继续判断
|
||||
result = []
|
||||
i = 0
|
||||
while i + 5 <= len(lines):
|
||||
# 检查当前位置开始是否是 6 行一组模式
|
||||
if is_six_row_group(lines, i):
|
||||
while i + 4 <= len(lines):
|
||||
if i + 5 < len(lines) and is_six_row_group(lines, i):
|
||||
# 是 6 行一组,合并这 6 行
|
||||
combined = '\t'.join(lines[i:i+6])
|
||||
# 检查并补充缺失的时间信息
|
||||
parts = combined.split('\t')
|
||||
if len(parts) >= 3 and not is_datetime_line(parts[2]):
|
||||
parts[2] = '1970-1-1'
|
||||
if len(parts) >= 6 and not is_datetime_line(parts[5]):
|
||||
parts[5] = '1970-1-1'
|
||||
combined = '\t'.join(parts)
|
||||
result.append(combined)
|
||||
i += 6
|
||||
elif is_five_row_group(lines, i):
|
||||
# 是 5 行一组,合并这 5 行并补充时间2
|
||||
combined = '\t'.join(lines[i:i+5])
|
||||
# 检查并补充缺失的时间信息
|
||||
parts = combined.split('\t')
|
||||
if len(parts) >= 3 and not is_datetime_line(parts[2]):
|
||||
parts[2] = '1970-1-1'
|
||||
# 为第二组补充时间
|
||||
if len(parts) >= 5:
|
||||
parts.append('1970-1-1')
|
||||
combined = '\t'.join(parts)
|
||||
result.append(combined)
|
||||
i += 5
|
||||
else:
|
||||
# 不是 6 行一组,丢弃当前行(相当于 offset+1)
|
||||
# 不是有效组,丢弃当前行(相当于 offset+1)
|
||||
i += 1
|
||||
# 处理剩余行(不足 6 行的)
|
||||
while i < len(lines):
|
||||
|
||||
Reference in New Issue
Block a user