Я думаю, что лучшее решение whould быть что-то вроде этого:
Ваша нормальная программа:
...
# ... part that downloaded newest files and put it into the "newest" folder
from subprocess import Popen
Popen("/home/code/reloader.py", shell=True) # start reloader
exit("exit for updating all files")
Обновление сценария: (например: дом/код/reloader.py)
from shutil import copy2, rmtree
from sys import exit
# maybie you could do this automatic:
copy2("/home/code/newest/file1.py", "/home/code/") # copy file
copy2("/home/code/newest/file2.py", "/home/code/")
copy2("/home/code/newest/file3.py", "/home/code/")
...
rmtree('/home/code/newest') # will delete the folder itself
Popen("/home/code/program.py", shell=True) # go back to your program
exit("exit to restart the true program")
Надеюсь, это поможет вам.
Вероятно, лучший способ пойти, если скрипт достаточно прост. –
os.execl работает и над окнами. – Josh
One-liner для справок в будущем: 'os.execl (sys.executable, * ([sys.executable] + sys.argv))' – Claudiu