Я создаю автоматизацию на Python, которая будет автоматически переходить на веб-сайт моей школы, присоединяться к онлайн-классу и т. Д. С помощью селена. Я полностью закончил эту часть, и все работает отлично. Теперь я пытаюсь понять, как запланировать эти действия.
Я думал об использовании расписания? Кажется, он хорош для простых работ, но я не знаю, пригодится ли оно для чего-то вроде этого.
Всего у меня 10 классов. У меня 6 занятий в день. Моя школьная неделя длится с понедельника по пятницу. В моем расписании всего 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
сможет это сделать, но я не Даже не знаю, с чего начать, когда у меня что-то вроде этого.
Я чувствую, что это было бы довольно простое решение, но я не могу с этим справиться.
1 ответ
Вам нужно рассчитать, какой сегодня день школьного семестра, и изменить его на 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 или других библиотек, или вы можете просто жестко запрограммировать список праздников и сделать это грубой силой, так как учебный семестр длится всего несколько месяцев. .
Похожие вопросы
Связанные вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.