Python实验代码定时调起

Python代码实验调参需要等待1小时运行完成,自动将提前设置的5组参数(每组参数有8个)间隔1小时之后让Python代码再次自动依次调起运行其中的一组参数,每次跑完将实验结果写一个文件在本地存储通过邮件发送运行结果到指定QQ邮箱

import time
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

# 假设的邮件配置(你需要替换为你的QQ邮箱SMTP配置)
smtp_server = 'smtp.qq.com'
smtp_port = 465  # SSL端口
sender_email = '@qq.com'
password = ''  # 使用授权码
receiver_email = '@qq.com'

# 假设的参数列表,实际中可以从文件或数据库读取
params_list = [
    {'param1': 'value1', 'param2': 'value2','param3': 'value3', 'param4': 'value4','param5': 'value5', 'param6': 'value6', 'param7': 'value7', 'param8': 'value8'},  # 8个参数
    # ... 其他4组参数
]


def run_experiment(params):
    # 在这里编写您的实验代码
    # 假设实验结果是一个字符串
    result = f"Result for params: {params}"
    return result


def send_email(result):
    msg = MIMEMultipart()
    msg['From'] = sender_email
    msg['To'] = receiver_email
    msg['Subject'] = 'Experiment Result'
    msg.attach(MIMEText(result, 'plain'))

    with smtplib.SMTP_SSL(smtp_server, smtp_port) as server:
        server.login(sender_email, password)
        server.sendmail(sender_email, receiver_email, msg.as_string())


def main(index):
    if index < len(params_list):
        params = params_list[index]
        result = run_experiment(params)
        with open(f'result_{index}.txt', 'w') as f:
            f.write(result)
        send_email(f'Experiment Result - Group {index}'+""+result)
        print(f"Experiment {index} finished. Waiting for 1 hour...")
        time.sleep(3600)  # 等待1小时
        main(index + 1)  # 递归调用以运行下一组参数


if __name__ == "__main__":
    # 假设我们从命令行接收一个参数来指定从哪一组开始(例如,从0开始)
    import sys

    if len(sys.argv) > 1:
        start_index = int(sys.argv[1])
        main(start_index)
    else:
        main(0)  # 默认从第一组开始

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangvalue

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值