如何解决在python中安排5天的6天时间表
我正在用Python创建一个自动化程序,它将自动导航到我学校的网站,并使用selenium加入在线课程等。我已经完全完成了这一部分,并且一切正常。现在,我试图弄清楚如何安排这些动作。
我正在考虑使用schedule吗?对于简单的工作来说似乎不错,但是我不知道对这样的事情是否有好处。
我总共有10节课。我一天有六节课。我的上学周从星期一和星期五开始。在我的时间表中,总共有 6天,这意味着时间表中的每一天,每一天都会轮换出来,而我那一周没有,而另一轮又轮到了。 >
因此,为了进一步解释我的意思,在第一周,我将有周一至周五的1-5天,但我没有第6天。我将有第6天。接下来的星期一。
我将日期定义如下:
import configparser
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
driver = webdriver.Firefox()
<defining what each class does here with selenium,etc.>
# Defining what classes I have in each day
def Day1():
class()
class()
class()
class()
class()
class()
def Day2():
class()
class()
class()
class()
class()
class()
def Day3():
class()
class()
class()
class()
class()
class()
def Day4():
class()
class()
class()
class()
class()
class()
def Day5():
class()
class()
class()
class()
class()
class()
def Day6():
class()
class()
class()
class()
class()
class()
每个class
都是我每天的不同的课。有些是相同的,有些是不同的,但这对这个问题并不重要。 (对于这个问题,我刚刚将它们全部称为class
,因为它很容易)
我该如何安排这些天(第1天-第6天),以便它们在星期一至星期五运行,一天轮流返回,然后在下一周返回(如上所述)?
Python schedule
模块似乎可以做到,但是当我有这样的东西时,我什至不知道从哪里开始。
我觉得这将是一个非常简单的解决方案,但我似乎无法解决。
解决方法
您需要计算学期的哪一天,并将其修改为6。一个好的起点就是这段代码,以获取当年的当前日期:
from datetime import datetime
day_of_year = datetime.now().timetuple().tm_yday
您还需要弄清楚一年中的哪一天是学校的第一天。称为first_day_of_school
。然后,假设学校在星期一开始:
day_of_school = day_of_year - first_day_of_school
week_of_school = day_of_school // 7
day_of_week = day_of_school % 7 # 0 means Monday,European style
day_of_term = week_of_school * 5 + day_of_week
class_index = day_of_term % 6
现在class_index
是[0,5]中的数字,告诉您当天要参加哪一组课程。
您可能需要针对假期进行调整,例如如果星期五假期意味着星期五课程不会被跳过而是转移到星期一。为此,您需要适当的工作日算术,可以使用NumPy或其他库轻松有效地进行算术运算,或者您可以对假期列表进行硬编码并进行蛮力操作,因为学期只有几个月
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。