Python编辑TXT文件后拼接未保留修改的问题求助
问题原因与解决方法
为什么修改没生效?
你修改的只是内存里的f_contents列表,没有把修改后的内容写回磁盘上的Balance1.txt文件。当用readlines()读取文件时,内容会被加载到内存的列表中,修改这个列表只是在内存里改数据,磁盘上的原文件完全没变化,所以合并时读的还是原始内容。
两种解决方法
方法1:先把修改写回原文件,再合并
给处理Balance1.txt的代码补充写回步骤,确保修改同步到磁盘:
with open('Balance1.txt', 'r+') as f: f_contents = f.readlines() # 修改Anna的金额,注意加换行符\n保证格式正确 f_contents[8] = "Anna, 600000\n" # 删除空白行 del f_contents[3] del f_contents[3] # 将文件指针移到文件开头 f.seek(0) # 把修改后的内容写入文件 f.writelines(f_contents) # 截断文件,避免原文件中剩余的旧内容残留 f.truncate()
执行这段代码后,Balance1.txt就会被更新,再运行你原来的合并代码,就能得到包含修改内容的Balance.txt了。
方法2:直接在内存处理所有内容,不修改原文件(更推荐)
如果不想改动原始文件,可以把三个文件的内容都加载到内存处理好,再直接写入Balance.txt:
# 处理Balance1.txt的内容 with open('Balance1.txt', 'r') as f: balance1_content = f.readlines() balance1_content[8] = "Anna, 600000\n" del balance1_content[3] del balance1_content[3] # 读取另外两个文件的内容 with open('Saving.txt', 'r') as f: saving_content = f.readlines() with open('Withdrawal.txt', 'r') as f: withdrawal_content = f.readlines() # 合并所有内容到Balance.txt with open('Balance.txt', 'w') as outfile: outfile.writelines(balance1_content) outfile.writelines(saving_content) outfile.writelines(withdrawal_content)
这种方式不会修改原始文件,避免误操作破坏原始数据,更适合作业场景。
注意:修改行内容时一定要加上
\n换行符,否则写入后各行会连在一起,格式混乱。
内容的提问来源于stack exchange,提问作者PK88
相关产品推荐
相关产品推荐

