Python 将旧文件中已有换行的行打印到同一行的新文件中
我希望Python 将旧文件中已有换行的行打印到同一行的新文件中,python,Python,我希望新行在3个句子之间只打印一次。但是通过下面的code,在新索引句子之前,每个句子都打印了换行符,并额外添加了一个换行符 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 star
新行
在3个句子之间只打印一次。但是通过下面的code
,在新索引
句子之前,每个句子都打印了换行符
,并额外添加了一个换行符
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
我猜是因为旧文件中的每个索引
,扫描时间
,以及二进制文件
都以换行符
结尾。
如何将这三个文件追加到同一行中
,并将它们写入新文件中
这里还有一件事,当我使用
“w”
模式进行打印时,它似乎一直在第一行打印。最后,我得到了一个空白文件。如果每次运行code
时,当“w”
不起作用时,我希望它在文件上重新写入,我应该使用什么模式?我建议您首先为要写入的行构建一个字符串,然后写入整行。如果要删除换行符字符
,则应使用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'
对于模式,将open('convert-profile.txt',w')作为f1:
应该可以正常工作。f1.close
不起任何作用。幸运的是,上下文管理器关闭了文件。。。如果您以w
模式在循环中打开同一个文件,那么您只能得到上一次迭代的结果。。。不清楚。你能告诉我们你期望什么和得到什么吗?关于w
,这里是错误的,因为我把和open…
放在for循环后面。我换了线把它修好了。