python实现批量顺序执行同目录下的py文件

今天在看知乎时看到的一个技巧,在用jupyter notebook调参时,为了避免凌晨坐在电脑前面看着电脑运行,可以写个按顺序执行多个python文件的脚本。

假如我要执行code目录下的python程序,假设该目录下有1.py,2.py,3.py,4.py四个文件,如果要执行1.py,3.py,2.py的顺序执行,则可在该目录下创建一个runAll.py文件,其中的代码如下:

1
2
3
4
import os
os.system("python ./1.py")
os.system("python ./3.py")
os.system("python ./2.py")

此时执行python runAll.py 时, 实际上就是按顺序执行了 1.py,3.py,2.py。如果要设置定时任务,可以用下列的方式实现:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import os
from time import sleep
def run():
	while 1:
	    os.system("python ./脚本1.py")
	
	    print('Waiting a minute ...')
	    sleep(5)
	
	    os.system("python ./脚本2.py")
	
	    # 定时 1小时 后执行
	    print("Wait for 1 hours to resume the crawler task!")
	    sleep(3600)	   
run()

若想指定输出到某个文件,这里我指定输出到log.txt,log.txt也在code目录下,与你的代码在同一目录:

1
2
3
4
import os
os.system("python ./1.py 1>>log.txt")
os.system("python ./2.py 1>>log.txt")
os.system("python ./4.py 1>>log.txt")