python - 有没有办法让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 的代码覆盖它的自我 任何帮助将不胜感激!
解决方案
总体而言,这些解决方案充其量只是 hacky - 不能保证。
你应该研究包管理/版本控制,因为已经开发出来的系统可能更可靠。
但是,您也许可以使用os.rename
. 我不确定这是否是一个好的解决方案,或者它是否安全,但它在我的快速试用中有效。
''' current.py (V1) '''
import os
os.rename("current.py", "old.py")
os.rename("new.py", "current.py")
在这种情况下,current.py (V1)
是用户运行的文件。执行后,您会留下old.py
and current.py (V2)
。
有两点需要注意:
- 您不会通过此方法进行逐行控制。
- 您可能想让这个程序调用另一个程序(比如 V1 调用 V2 然后退出),使用这些策略。
推荐阅读
- javascript - 带有 JS 自定义的数据中的 PDF SaveAS 文件名
- python - 在 django 简单标签中使用逐字标签
- pandas - 嵌套字典到多索引DataFrame(具体示例)
- flutter - 为什么 ChangeNotifierProvider 存在?
- angular - Angular 使用 html2canvas 并等待其完成(异步/等待?)
- javascript - 页眉和侧边栏之间的间距问题
- angular - 如何在 ngx-ui-loader 中排除动态 URL?
- python - 如何创建一个无限浮点数生成器以用作另一个函数的输入
- c++ - 在指针上实现列表
- kubernetes - 在 Kubernetes 中,PV/PVC 是否能保证 Pod 的粘性安装?