如何消除Python中使用end=" "打印时的末尾多余空格?
解决Python打印句子末尾多余空格及文件写入问题
问题分析
现有代码通过循环逐个打印单词并设置end=" ",导致最后一个单词后也会添加空格,同时未完成将句子写入文件末尾的核心任务。
修复方案
1. 解决末尾空格问题
使用字符串的join()方法,将处理好的单词列表直接拼接成带空格的句子,无需手动控制结尾符,从根源避免多余空格。
2. 补充文件写入逻辑
在读取文件内容后,将拼接好的句子写入文件末尾,读取后文件指针已处于末尾,直接写入即可,注意添加换行符确保句子在新行。
完整代码
file_name = input() with open(file_name, "r+", encoding="utf-8") as f: # 读取所有行并去除每行的换行符和空白字符 list_words = [word.strip() for word in f.readlines()] # 打印原有每个单词 for word in list_words: print(word) # 拼接成无多余空格的句子 sentence = " ".join(list_words) # 打印句子 print(sentence) # 将句子写入文件末尾,添加换行符确保是新行 f.write("\n" + sentence) # 可选:验证文件最新内容 with open(file_name, "r", encoding="utf-8") as f: print("\n文件最新内容:") print(f.read(), end="")
代码说明
- 用列表推导式一次性处理所有读取到的单词,去除每行的换行和空白字符,得到干净的单词列表。
" ".join(list_words)会自动在单词间添加空格,且末尾无多余空格。- 使用
with语句自动管理文件句柄,避免资源泄漏。 - 写入文件时添加
\n,确保句子单独占一行,不会和原有内容混在一起。
内容的提问来源于stack exchange,提问作者Bryan Tobar
相关产品推荐
相关产品推荐

