我正在编写修改任何文本文件的脚本。它用空行代替空白行。它会擦除文件末尾的空白行。该图像显示我想要的输出。Python - 删除文件末尾的空行文本
我能够得到非常接近所需的输出。问题是我无法摆脱最后一个空白行。我认为这与最后一行有关。例如' the lines below me should be gone实际上看起来像这样' the lines below me should be gone\n'它看起来像在上一行创建了新行。 e.g如果4号线有\n比5号线实际上将是空行不行4.
我要指出,我不能使用rstrip或strip
到目前为止我的代码。
def clean_file(filename):
# function to check if the line can be deleted
def is_all_whitespace(line):
for char in line:
if char != ' ' and char != '\n':
return False
return True
# generates the new lines
with open(filename, 'r') as file:
file_out = []
for line in file:
if is_all_whitespace(line):
line = '\n'
file_out.append(line)
# removes whitespaces at the end of file
while file_out[-1] == '\n': # while the last item in lst is blank
file_out.pop(-1) # removes last element
# writes the new the output to file
with open(filename, 'w') as file:
file.write(''.join(file_out))
clean_file('test.txt')
2014-01-30
Vader
+3
你已经做了很多关于这个问题的研究,这很清楚。 +1。 –
+1
为什么“不能”使用'.rstrip()'? –
+0
@KarlKnechtel那会太容易 –