打印从旧文件到新文件相同行中的已有换行符的行

2024-05-20 02:32:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望newline在3个句子之间只打印一次。但是在接下来的code中,每个句子在新的index句子之前都印上了newline和一个额外的newline

with open(convert_file) as infile:
for line in infile:
    with open('convert-profile.txt', "a") as f1:
        if "index" in line:
            f1.write("\n"+line)
        elif "scan start time" in line:
            f1.write(line)  
        elif "binary: [4]" in line:
            f1.write(line)
        f1.close

我猜是因为旧文件中的每个indexscan timebinary都以newline结尾。 如何在同一个line中附加这三个元素并将它们写入新文件


这里还有一件事,当我对print使用"w"模式时,它似乎一直在第一行打印。最后,我得到了一个空白文件。当"w"不起作用时,如果每次运行code时都希望它在文件上重新写入,应该使用什么模式


Tags: 文件inconvertindexaswithlinenewline
1条回答
网友
1楼 · 发布于 2024-05-20 02:32:14

我建议你先为你想写的行建立一个string,然后写整行。如果要删除换行符character,应该使用line.rstrip(),如下所示:

    line = line.rstrip()
    result = ''
    if "index" in line:
        result += line
    elif "scan start time" in line:
        result += line
    elif "binary: [4]" in line:
        result += line
    result += '\n'

对于模式,with open('convert-profile.txt', 'w') as f1:应该可以正常工作

相关问题 更多 >