我正在編寫修改任何文本文件的腳本。它用空行代替空白行。它會擦除文件末尾的空白行。該圖像顯示我想要的輸出。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')
你已經做了很多關於這個問題的研究,這很清楚。 +1。 – jayelm
爲什麼「不能」使用'.rstrip()'? –
@KarlKnechtel那會太容易 – Vader