Python文件操作问题:读取多行内容拼接后追加至原文件失败
Python文件操作问题修复
你的代码存在三个关键问题,导致文件未按预期修改:
a+模式的指针位置错误:用a+打开文件时,文件指针默认停在末尾,直接调用f.read()读不到任何内容,无法生成需要追加的字符串。- 拼接字符串缺少空格:
''.join(value.splitlines())会把三行文本直接连在一起(变成MooseChasesCar),不符合需求里的空格分隔要求。 - 未执行文件关闭操作:
f.close只是引用了关闭方法,没有实际执行,需要写成f.close();更推荐用with语句自动管理文件生命周期。
修正后的代码
def func(value): # 用空格拼接各行内容 return ' '.join(value.splitlines()) # 使用with语句自动处理文件打开/关闭 with open("WordTextFile1.txt", "r+") as f: # 读取文件全部内容 myString = f.read() # 生成拼接后的目标字符串 new_str = func(myString) # 将文件指针移到末尾,确保追加在最后 f.seek(0, 2) # 先写入换行符,避免和原最后一行内容粘连 f.write('\n' + new_str)
关键修改说明
- 改用
r+模式:同时支持读和写,打开文件时指针默认在开头,能正常读取全部内容。 - 调整拼接分隔符:把空字符串
''换成空格' ',保证拼接后的单词间有空格。 - 自动文件管理:
with语句会在代码块结束后自动关闭文件,避免手动关闭遗漏的问题。 - 添加换行符:追加前先写
\n,确保新内容单独占一行,符合需求里的第4行格式。
内容的提问来源于stack exchange,提问作者Samples
相关产品推荐
相关产品推荐

