迭代一个文本文件,如何在循环中继续下一行?

我是 python 的新手,我在让我的脚本做我需要的事情时遇到了一些困难,我需要一些帮助。我的代码可能也可以更好地排序,如果它很乱,我很抱歉。整个脚本只是自动执行手动任务。步骤如下:

  1. 打开带有两个选项卡的浏览器

  2. 登录两个网站,每个选项卡一个

  3. 读取并复制文本文件 test.txt 中的第一行,其中包含一封电子邮件

  4. 将第一行的值粘贴到网页 1 上的文本字段并按 RETURN

  5. 使用硒在网页上获取一些数据1

  6. 它将值粘贴到网页 2 上并在网页 2 上发送短信 7. 复制网页 2 的输出

  7. 打开第三个 URL,并粘贴来自网页 2 的输出

  8. 从第 3 步开始重复(?)

目前所有这些工作都很神奇,但是当整个脚本完成后,我希望它返回到第 3 步,但这次读取文本文件中的第 2 行。在阅读第 3 行等之前再次执行步骤 3-8。我该怎么做?

这个想法是我有一个 .txt 文件,其中包含许多电子邮件地址,每行一个,我的脚本在每个地址上执行此过程。如果可能,我还希望脚本在阅读后将“-Successful”附加到每一行。因此脚本将运行 x 次,具体取决于 test.txt 中的行数。如果可能的话,最好也进行一些错误处理,即如果有任何错误,则移至文件中的下一行。

我怎么能在这里实现我想要的?感谢任何帮助!



跃然一笑
浏览 197回答 2
2回答

明月笑刀无情

我看到的第一件事是,每一次searchB()叫你通过test.txt文件的全部内容循环。with open('C:\\Users\\user\\test.txt','r') as f:         for email in f:在遇到 EOF 之前不会停止。与其将循环放在您的searchB()函数中,不如将其放在 main 中,这样您就可以拥有更多控制权并searchB()在您想要的 test.txt 文件中的任何行上调用。对于日志,您需要查看日志库,这将允许您指定日志文件并在写入某些内容或调用失败后放置日志消息。附加- successful到行尾会非常烦人。

冉冉说

我通过将循环移动到主函数来解决这个问题,如下所示:def main():&nbsp; &nbsp; driver.execute_script('window.open("{}");'.format(''))&nbsp; &nbsp; login()&nbsp; &nbsp; driver.switch_to_window(driver.window_handles[0]) # Use first tab&nbsp; &nbsp; emailSearch = driver.find_element_by_id('quicksearchinput') # Identify Quicksearch text-field&nbsp; &nbsp; with open('C:\\Users\\user\\test.txt','r+') as f:&nbsp; &nbsp; &nbsp; &nbsp; for email in f:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; searchB(email) ## <-- Added this&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print(email)我的 searchB() 函数是这样的:def searchB(mail):&nbsp; ## <-- Added this&nbsp; &nbsp; driver.switch_to_window(driver.window_handles[0]) # Use first tab&nbsp; &nbsp; emailSearch = driver.find_element_by_id('quicksearchinput') # Identify Quicksearch text-field&nbsp; &nbsp; emailSearch.send_keys(email, Keys.RETURN)&nbsp; &nbsp; sendSMS()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python