为了账号安全,请及时绑定邮箱和手机立即绑定

Python For 循环在中间停止工作

Python For 循环在中间停止工作

蓝山帝景 2021-11-16 11:00:43
列表中的变量与代码一起工作正常: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
查看完整描述

2 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

这导致您跳过列表中的某些元素: 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


查看完整回答
反对 回复 2021-11-16
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

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


查看完整回答
反对 回复 2021-11-16
  • 2 回答
  • 0 关注
  • 321 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信