You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何替换文本文件指定内容?复制修改后新文件为空如何解决

问题原因

新生成文件为空是因为你第二次打开目标task文件时使用了w+模式:
w+模式的核心特性是打开文件时直接清空所有原有内容,你第一次把task1.py的内容写入新文件后,马上用w+模式重新打开该文件,刚写入的内容直接被清空,后续读取到的就是空字符串,最终写入文件的自然是空内容。

修复方案

  1. 把第二次打开目标task文件的模式从w+改为r(只读模式,不会修改原有内容)即可解决空文件问题
  2. 可以进一步简化代码逻辑,避免重复打开文件、手动调用close()的疏漏,推荐统一用with上下文管理器操作文件,自动处理文件关闭。

以下是优化后的可运行代码:

# 读取计数文件
with open('Tasks/Task_Counter.txt', 'r') as c:
    okay = c.read().splitlines()
which_task = int(okay[0])
this_task = which_task + 1 
which_port = int(okay[1])
this_port = which_port + 1

# 更新计数文件
with open('Tasks/Task_Counter.txt', 'w') as c:
    c.write(f"{this_task}\n{this_port}")

# 读取模板文件内容+替换端口
with open('Tasks/task1.py', 'r') as q:
    content = q.read()
content = content.replace('9250', str(this_port))

# 写入新的task文件
with open(f"Tasks/task{this_task}.py", 'w') as f:
    f.write(content)

内容的提问来源于stack exchange,提问作者programming_for_fun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 03:36:03