Python For 循环在中间停止工作

列表中的变量与代码一起工作正常:pyautogui.typewrite(i) 并在列表中途停止随机工作。


下面可以进行哪些改进,我怎样才能不惜一切代价让它到达文件的末尾?


它可能与 for 循环以外的其他语句有关,还是我应该想出更好的方法来从文本文件中获取列表?


提前谢谢你的帮助。


results = []

    with open('H:\RetiredDevices.txt') as inputfile:

        for line in inputfile:

            results.append(line)



while True:


    for i in results:

        pyautogui.click(PressEnter1)

        pyautogui.click(PressEnter1)

        time.sleep(1)

        pyautogui.click(PressEnter2)

        #pyautogui.click(PressEnter3)

        pyautogui.click(PressEnter4)

        pyautogui.typewrite(i)

        pyautogui.press('enter')

        time.sleep(1)

        retired_devices.append(i)

        results.remove(i)



    if len(results) == 0:

        break


蓝山帝景
浏览 322回答 2
2回答

四季花海

这导致您跳过列表中的某些元素: results.remove(i)演示:res = [k for k in range(0,10)]for i in res:    print(i)    res.remove(i)>>>output    0    2    4    6    8

料青山看我应如是

不要results.remove(i)在循环本身中使用。您通常不想在您仍在迭代的列表中添加或删除正在迭代的列表中的内容。通常我会建议将所有要删除的项目添加到另一个列表中,然后迭代该列表以将它们从原始列表中删除。这看起来你已经在其加入retired_devices,所以我会遍历retired_devices的循环结束后,并results.remove(i)在每一个我retired_devices。您也不需要while循环,for循环将在完成所有元素后结束。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python