python - 运行 python 脚本并更改 git 分支

标签 python git branch git-branch

我正在努力寻找更好地利用编程时间的方法。

我有一个 python 脚本可以完成一些繁重的工作(可能需要数小时)。现在,它所做的大部分工作都与网络相关,所以我有足够的 CPU 资源可以使用。

如果脚本是一个 C 二进制可执行文件,将 git checkout 到不同的分支并做额外的工作会很好,我什至可以修改磁盘中的二进制文件,因为它已被复制到 ram,所以直到它完成运行我不会影响程序输出。

但是 python 脚本是翻译的,而不是编译的。如果我开始篡改源文件会发生什么情况,我是否可以破坏程序输出,或者文本文件和相关导入是否已复制到 RAM,从而允许我篡改源文件而没有改变正在运行的程序行为的风险?

最佳答案

一般来说,如果您有一个作为脚本运行的 Python 文件,就没问题。当你运行这个文件时,它被编译成字节码然后被执行。此时您可以更改原始脚本,不会出现任何中断。

但是,我们可以故意通过编写一些可怕但合法的代码来打破它:

horrible.py:

from time import sleep


sleep(10)
import silly
silly.thing()

silly.py:

def thing():
    print("Wow!")

您可以运行 horrible.py 并且在它运行时您可以编辑磁盘上的 silly.py 以使其执行其他操作。当 silly.py 最终被 import 时,将加载更新的版本。

解决方法是将所有导入放在文件顶部,无论如何您都可能这样做。

关于python - 运行 python 脚本并更改 git 分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53637368/

相关文章:

git - GIT : I've got no branch! 吓坏我的生活

python - Pyqt:如何更改QGroupBox标题颜色?

git - 为什么 pull 请求在 rebase 后会显示额外的提交?

linux - 如何从源代码编译XBMC

git - 在 SQUASHED 时检查 Git 分支是否已 merge 到 master 中?

git - 如何在没有本地仓库的情况下远程运行 git 命令

python - 用于 Python 的亚马逊 AWS Web 框架

python - UnsatisfiableError:发现以下规范存在冲突:-opencv3-> python 2.7 *-python 3.6 *

python - 不明白为什么print不显示hmget的结果

git不添加现有文件夹