列表中的变量与代码一起工作正常: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
料青山看我应如是
TA贡献1772条经验 获得超8个赞
不要results.remove(i)
在循环本身中使用。您通常不想在您仍在迭代的列表中添加或删除正在迭代的列表中的内容。通常我会建议将所有要删除的项目添加到另一个列表中,然后迭代该列表以将它们从原始列表中删除。这看起来你已经在其加入retired_devices
,所以我会遍历retired_devices
的循环结束后,并results.remove(i)
在每一个我retired_devices
。您也不需要while
循环,for
循环将在完成所有元素后结束。
添加回答
举报
0/150
提交
取消