import os
import subprocess
import sys
import time
scripts = sys.argv[1:]
mtimes = {script: os.stat(script).st_mtime for script in scripts}
while True:
for script in scripts:
mtime = os.stat(script).st_mtime
if mtime != mtimes[script]:
subprocess.call([script], shell=True)
mtimes[script] = mtime
time.sleep(250)
3条答案
按热度按时间o7jaxewo1#
如果每次我保存py文件时,它都会自动执行,这将是令人讨厌的。因为你可以编辑一个py文件,所以只需要py类。或纯配置的东西。不管怎样,如果你想这样做,你可以试试:
我的
vimrc
中有:现在你可以手动的按
<F9>
来测试你当前的python文件。8tntrjer2#
正如sean和肯特所建议的,最简单的方法是让
vim
驱动它。但是,如果你只“大部分”在vim中工作,那可能不太合适。
唯一的另一种选择是编写使用平台的文件系统监视API的代码,或者,如果最坏的情况是,定期轮询文件,并在每次更新时运行它。然后在
screen
或tmux
下运行该代码(假设在另一个screen
窗口中使用vim
)。因为我不知道你的平台,所以我会写一个愚蠢的轮询实现来展示这个想法--只要记住,在真实的生活中,你最好使用像
inotifywatch
/fswatch
/etc这样的工具。:现在,你可以这样做:
l5tcr1uw3#
你可以使用nodemon。
npm i -g nodemon
然后用nodemon监视文件以自动运行它
nodemon --exec python main.py
您还可以在每次执行时清除屏幕。