设置多个顺序执行的python文件,当一个文件执行结束后,继续执行下一个文件,减少手动操作等待时间
import subprocess
from datetime import datetime
def time_use(start,end):
time_difference = end - start
# 将时间差转换为小时和分钟
# time_difference.total_seconds() 返回总秒数
# 除以3600得到小时数,取余数得到剩余秒数,再除以60得到分钟数
hours = time_difference.total_seconds() // 3600
minutes = (time_difference.total_seconds() % 3600) // 60
return hours, minutes
def run_exp():
print("实验已启动!")
# 获取当前时间
start = datetime.now()
# 第一个 Python 脚本的路径
exp1 = './demo.py'
# 第二个 Python 脚本的路径
exp2 = './demo4.py'
# 可设置多个python脚本
# 执行第一个脚本
results1 = subprocess.run(['python', exp1])
# 第一个 Python 完成的时间
time_exp1 = datetime.now()
time_use_exp1 = time_use(start, time_exp1)
# 如果第一个脚本执行成功,再执行第二个脚本
if results1.returncode == 0:
# 当第一个脚本执行完成后,执行第二个脚本
subprocess.run(['python', exp2])
# 第二个 Python 完成的时间
time_exp2 = datetime.now()
time_use_exp2 = time_use(time_exp1, time_exp2)
else:
print("第一个实验执行失败!")
print("实验结束!")
return # 直接返回,后面的代码不再执行
# 可设置多个python脚本
print("实验开始时间:", start.strftime("%Y-%m-%d %H:%M:%S"))
# 输出训练时间信息
print("第一个实验的完成时间:", time_exp1.strftime("%Y-%m-%d %H:%M:%S"), "实验耗时:", time_use_exp1[0],"h", time_use_exp1[1],"m")
print("第二个实验的完成时间:", time_exp2.strftime("%Y-%m-%d %H:%M:%S"), "实验耗时:", time_use_exp2[0],"h", time_use_exp2[1],"m")
# 计算总时间
total_time = time_use(start, time_exp2)
print("所有实验共用时:", total_time[0],"h", total_time[1],"m")
end_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print("实验结束时间:", end_time)
print('所有实验均已完成!')
if __name__ == '__main__':
run_exp()