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

Python自复制自删除脚本单次运行、路径偏移问题修复问询

自复制可重复执行Python脚本实现方案

完整可运行代码

import os

# 读取自身绝对路径信息,不依赖执行时的工作目录
self_full_path = os.path.abspath(__file__)
self_dir = os.path.dirname(self_full_path)
self_filename = os.path.basename(self_full_path)
# 同目录下生成临时文件路径,用隐藏前缀避免冲突
tmp_file_path = os.path.join(self_dir, f".tmp_{self_filename}")

# 提前将全部脚本内容读入内存,删除原文件不影响后续逻辑
with open(self_full_path, "r", encoding="utf-8") as f:
    script_content = f.read()

# 1. 写入临时副本到原文件同目录
with open(tmp_file_path, "w", encoding="utf-8") as f:
    f.write(script_content)

# 2. 删除原文件
os.remove(self_full_path)

# 3. 临时文件重命名为原文件名,完成替换
os.rename(tmp_file_path, self_full_path)

# 此处可添加其他自定义业务逻辑
print("执行完成,副本已刷新")

问题修复与需求匹配说明

  • 路径问题修复:通过内置变量__file__获取脚本自身的真实绝对路径,完全不依赖执行命令时的工作目录,副本始终生成在脚本本身所在的目录,不会出现生成到上级目录的问题
  • 重复执行支持:执行流程完全符合要求的「写临时副本→删原文件→重命名临时文件」逻辑,代码提前读入内存,全程没有文件命名冲突,可无限次重复运行
  • 可移植性优化:所有路径操作使用os.path标准库方法实现,兼容全操作系统,无硬编码的路径、文件名,脚本可任意重命名、放置在任意目录下运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:54:08