我要完成的是在文本文件中为每一行插入一个新的空白行。在
我知道这可以用一个简单的编辑器来完成,但真正要做的是为每一行添加一个增量值。在
这是我目前为止的代码:
import fileinput
import re
count = 0
for line in fileinput.input():
line = re.sub('\n\r', '\n\r\n\rmyline' + str(count), line.rstrip())
count+=1
print(line)
由于某些原因,我不能用我的内容替换换行。也尝试过/n或/r,但没有成功
现场示例:
初始文本文件:
^{pr2}$最终结果:
line1
line2
myline1
line3
myline2
myline3
morelines
您的代码有几个问题。在
'\n'
,因此您的代码永远不会看到'\r'
。在'\n\n'
(或'\r\n\r\n'
)。在line.rstrip()
。rstrip
删除所有尾随空格,包括'\n'
和'\r'
,因此即使将正则表达式更改为'\n'
,它也永远不会匹配任何内容。在未测试:
这对我有用
这里的逻辑是: ->;get_my_line是一个函数,它根据变量“i”给出/打印要添加/打印的所需行
->;每次调用get\u my\u line时,“i”都会递增
->;f.readlines读取每个新行并存储在foo中(即,'\n'被它检测到)
->;如果foo是'\n',则表示有一个非文本包含行。在
->;这里的方法是在每个语句后添加新行,如果foo为'\n',则检查prev txt read是否为'\n'(这有助于我们跳过包含行的文本后的第一个'\n',对于后续的连续'\n',我们可以添加新行)
—>;如果was_prev_text_new_line为true,则调用get_my_line并递增i
->;在if块末尾设置“was”prev“text”或“new”line“真”
->;如果foo不是('\n'),那么只需打印foo,获得要添加的新行并增加i
相关问题 更多 >
编程相关推荐