在第二次迭代 运行 python 脚本时再添加一个小时
Add another hour when running python script on 2nd iteration
我有一个使用 datetime、timedelta 和 selenium 模块的 Python 脚本。
该脚本转到一个网站,输入当前时间(使用 datetime),并将用户输入的数字添加到当前时间(使用 timedelta)。
我也有一个循环。但我想确保当脚本处于第 2 个循环时,它会增加两倍的用户输入。
(例如:用户输入 2,脚本会在当前时间的小时上输入 2。然后再次循环,但这次会在当前时间的小时上加 4 .)
有谁知道我如何实现这个想法?这对我的项目很有用,谢谢。
代码:
import undetected_chromedriver as uc
from selenium.webdriver import ActionChains, Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from datetime import datetime, timedelta
import time
hr_input = int(input('how many hours to add?: ')
amount_loops = int(input('how many times to loop?: ')
for i in range(amount_loops):
time.sleep(2)
adding = (datetime.now() + timedelta(hours=int(hr_input))).strftime("%H:%M")
wait.until(EC.visibility_of_element_located((By.XPATH, '//*[@id="input-1"]/input'))).send_keys(adding + Keys.ENTER)
time.sleep(2)
假设你想每次乘以2,你可以使用变量i,然后乘以2**i
- 所以第一次 2**0 = 1 所以没有效果
- 第二次 2**1 = 2 次 2
- 第三次 2**2 = 4 等等等等
即
adding = (datetime.now() + timedelta( hours=2**i*int(hr_input) )).strftime("%H:%M")
我有一个使用 datetime、timedelta 和 selenium 模块的 Python 脚本。 该脚本转到一个网站,输入当前时间(使用 datetime),并将用户输入的数字添加到当前时间(使用 timedelta)。
我也有一个循环。但我想确保当脚本处于第 2 个循环时,它会增加两倍的用户输入。
(例如:用户输入 2,脚本会在当前时间的小时上输入 2。然后再次循环,但这次会在当前时间的小时上加 4 .)
有谁知道我如何实现这个想法?这对我的项目很有用,谢谢。
代码:
import undetected_chromedriver as uc
from selenium.webdriver import ActionChains, Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from datetime import datetime, timedelta
import time
hr_input = int(input('how many hours to add?: ')
amount_loops = int(input('how many times to loop?: ')
for i in range(amount_loops):
time.sleep(2)
adding = (datetime.now() + timedelta(hours=int(hr_input))).strftime("%H:%M")
wait.until(EC.visibility_of_element_located((By.XPATH, '//*[@id="input-1"]/input'))).send_keys(adding + Keys.ENTER)
time.sleep(2)
假设你想每次乘以2,你可以使用变量i,然后乘以2**i
- 所以第一次 2**0 = 1 所以没有效果
- 第二次 2**1 = 2 次 2
- 第三次 2**2 = 4 等等等等
即
adding = (datetime.now() + timedelta( hours=2**i*int(hr_input) )).strftime("%H:%M")