我正在尝试学习Python中的文件处理。我需要使用以下更改创建一个新文件。 我有以下输入文件:-
输入文件:-
Hello World!!!
foo bar qss
> foot
> grass
> flower
> leaf
foo1 bar1 qss1
> dragon
> quiz
foo2 bar2 qsq1
foo3 bar3 qsa2
我的输出文件应为:-
Hello World!!!
foo bar qss foot grass flower leaf
foo1 bar1 qss1 dragon quiz
foo2 bar2 qsq1
foo3 bar3 qsa2
因此,如果下一行中有“>”,则应将内容复制到当前行。
我尝试使用next(),但是它将文件指针指向下一行。
#f1 is read file pointer
#f2 is write file pointer
for myline in f1:
if(next(f1) != '>'):
f2.write("myline[1]+" "+myline[2]+" "+myline[3]+" "+next(f1)[3])
答案 0 :(得分:3)
而不是向前看,而是向后看:仅当下一行不是以“>”开头时,才在前一行添加换行符。
with open("f.txt") as f1, open("g.txt", "w") as f2:
for myline in f1:
myline = myline.strip() # Remove the line break
if myline.startswith("> "):
f2.write(myline[1:])
else:
f2.write("\n" + myline)
答案 1 :(得分:1)
with open(r"input.txt") as input:
lines = input.readlines()
new_lines = (''.join(lines).replace('\n> ', ''))
with open(r"output.txt", 'w') as output:
output.writelines(new_lines)
输入:
Hello World!!!
foo bar qss
> foot
> grass
> flower
> leaf
foo1 bar1 qss1
> dragon
> quiz
foo2 bar2 qsq1
foo3 bar3 qsa2
输出:
Hello World!!!
foo bar qss foot grass flower leaf
foo1 bar1 qss1 dragon quiz
foo2 bar2 qsq1
foo3 bar3 qsa2
希望有帮助