首页 > 解决方案 > 有没有办法让python脚本用旧文件替换新文件

问题描述

我是新手 python 开发人员,我有一个问题。我有一个 python 脚本检查外部网页上是否有可用的更新,但是在试图让它用新文件覆盖旧文件时遇到了困难。下面的代码所做的是获取 new.py 并将其作为 txt 文件打开。然后它搜索__VERSION__. 我搜索新版本的代码如下。如何用 new.py 替换 current.py?

__VERSION__ = '1.0'
#Get new version
new_version = ''
with open('new.py') as newfile:
    for line in newfile:
        line = line.strip()
        if '__VERSION__' in line:
            _, new_version = line.split('=', maxsplit=1)
            new_version = new_version.strip()
            break

谢谢@user:6530979 谁能帮我理解这之后该怎么做?编辑:目标是 current.py 用 new.py 的代码覆盖它的自我 任何帮助将不胜感激!

标签: python

解决方案


总体而言,这些解决方案充其量只是 hacky - 不能保证。

你应该研究包管理/版本控制,因为已经开发出来的系统可能更可靠。

但是,您也许可以使用os.rename. 我不确定这是否是一个好的解决方案,或者它是否安全,但它在我的快速试用中有效。

''' current.py (V1) '''
import os

os.rename("current.py", "old.py")
os.rename("new.py", "current.py")

在这种情况下,current.py (V1)是用户运行的文件。执行后,您会留下old.pyand current.py (V2)

有两点需要注意:

  1. 您不会通过此方法进行逐行控制。
  2. 您可能想让这个程序调用另一个程序(比如 V1 调用 V2 然后退出),使用这些策略。

推荐阅读