【python查找替换:查找空行,空行前后添加,
中间添加 # + 空格 + 空行后遇到的第1行文字? - CSDN App】http://t.csdnimg.cn/QiKCV
def is_blank(line):return len(line.strip()) == 0txt = '''
时间戳:
("%Y-%m-%d %H:%M:%S")代码要求:
添加时间戳库 标签 标题 标记
规范函数 变量 库检测导入 定义名# 省略部分txt文本...纯代码
讲解
'''lines = txt.splitlines()
for i in range(len(lines)):line = lines[i]if is_blank(line):lines[i] = '\n```\n# ' + lines[i+1] + '\n```'i += 1modified_txt = '\n'.join(lines)
print(modified_txt).1.2.1空行问题1.3.1.5.py" && exit < Traceback (most recent call last):File "/storage/emulated/0/qpython/评论截 图问题1.矩阵2.1.2.1空行问题1.3.1.5.py", li ne 25, in <module>lines[i] = '\n```\n# ' + lines[i+1] + '\n```'~~~~~^^^^^
IndexError: list index out of range
1|:/ $
出现了"IndexError: list index out of range"的错误。这是因为在处理空白行时,当最后一行是空白行时,会导致lines[i+1]
超出了列表范围。
修正代码:
为了解决这个问题,我们可以在遍历时判断当前行是否为最后一行,如果是则不处理该空白行。你可以将修改后的代码如下:
def is_blank(line):return len(line.strip()) == 0txt = '''
时间戳:
("%Y-%m-%d %H:%M:%S")代码要求:
添加时间戳库 标签 标题 标记
规范函数 变量 库检测导入 定义名# 省略部分txt文本...纯代码
讲解
'''lines = txt.splitlines()
for i in range(len(lines)):line = lines[i]if is_blank(line):if i != len(lines) - 1: # 判断是否为最后一行lines[i] = '\n```\n# ' + lines[i+1] + '\n```'else:lines[i] = '\n```\n# ' + lines[i] + '\n```'modified_txt = '\n'.join(lines)
print(modified_txt)
在修改后的代码中,添加了一个条件判断语句if i != len(lines) - 1
来判断是否为最后一行。如果是最后一行,则将空白行替换为'\n```\n# ' + lines[i] + '\n```'
;如果不是最后一行,则按之前的逻辑进行处理。
/data/user/0/org.qpython.qpy/files/bin/qpy thon3.sh "/storage/emulated/0/qpython/评论 截图问题1.矩阵2.1.2.1空行问题1.3.1.5.py" & & exit
.1.2.1空行问题1.3.1.5.py" && exit <
```
# 时间戳:
```
时间戳:
("%Y-%m-%d %H:%M:%S")```
# 代码要求:
```
代码要求:
添加时间戳库 标签 标题 标记
规范函数 变量 库检测导入 定义名```
# # 省略部分txt文本...
```
# 省略部分txt文本...```
# 纯代码
```
纯代码
讲解```
#
``````
#
```#[QPython] Press enter to exit ...