如果它们在文件中不是emty,则将它们连接在一起

时间:2016-03-10 14:35:07

标签: python file python-3.x newline

我有一个文件,其中一些句子分布在多行。 例如:

1:1 This is a simple sentence
[NEWLINE]
1:2 This line is spread over 
multiple lines and it goes on
and on.
[NEWLINE]
1:3 This is a line spread over
two lines
[NEWLINE]

所以我希望它看起来像这样

1:1 This is a simple sentence
[NEWLINE]
1:2 This line is spread over multiple lines and it goes on and on.
[NEWLINE]
1:3 This is a line spread over two lines

有些线路分布在2或3或4行。如果跟随al line不是新行,则应该合并为一行。 我想覆盖给定的文件来创建一个新文件。

我已尝试使用while循环但没有成功。

input = open(file, "r")
zin = ""
lines = input.readlines()
#Makes array with the lines
for i in lines:
    while i != "\n"
        zin += i
.....

但这会产生无限循环。

1 个答案:

答案 0 :(得分:3)

您不应该在用例中嵌套forwhile循环。代码中发生的事情是i循环将一行分配给变量for,但嵌套while循环不会修改它,所以如果{{ 1}}子句是while,然后它将保持这种状态,没有破坏条件,你最终会得到一个无限循环。

解决方案可能如下所示:

True

覆盖输入文件的好方法是收集内存中的所有输出,读出后关闭文件并重新打开以进行写入,或者在读取输入时写入另一个文件并重命名第二个文件以覆盖关闭后的第一个。