from uiautomation import WindowControl, MenuControl import re wx = WindowControl(Name='微信') wx.SwitchToThisWindow() hw = wx.ListControl(Name='会话') print('寻找会话控制绑定', hw) # 定义包含数字的列表 numbers = [1234567890, 20000000000, 30000000000] while True: we = hw.TextControl(searchDepth=4) while not we.Exists(8): pass print('查找未读消息', we) if we.Name: we.Click(simulateMove=False) messages = wx.ListControl(Name='消息').GetChildren() # 遍历每个消息控件,获取消息内容并进行处理 for message in messages: last_msg = message.Name print('读取消息', last_msg) new_numbers = [] # 使用正则表达式匹配符合条件的数字 for num in re.findall(r'\b\d{11}\b', last_msg): if int(num) > 10000000000 and int(num) < 20000000000: new_numbers.append(int(num)) # 输出符合条件的数字 print('符合条件的数字:', new_numbers) index = 0 # 使用pop()函数提取并删除指定索引的元素 list1= new_numbers.pop(index) print(list1) print(new_numbers) 有问题吗
时间: 2024-01-04 21:01:53 浏览: 127
在这个代码中,每次循环迭代时,你都将 `list1` 变量重置为了 `new_numbers` 列表的第一个元素。这样会导致 `list1` 只包含一个元素,并且在下一次循环迭代中,它将被覆盖为新的第一个元素。
如果你想要将 `new_numbers` 列表中的所有元素依次添加到 `list1` 列表中,可以使用 `extend()` 函数,它可以将一个列表中的所有元素添加到另一个列表中。以下是修改后的示例代码:
```python
from uiautomation import WindowControl, MenuControl
import re
wx = WindowControl(Name='微信')
wx.SwitchToThisWindow()
hw = wx.ListControl(Name='会话')
print('寻找会话控制绑定', hw)
numbers = [1234567890, 20000000000, 30000000000]
list1 = []
while True:
we = hw.TextControl(searchDepth=4)
while not we.Exists(8):
pass
print('查找未读消息', we)
if we.Name:
we.Click(simulateMove=False)
messages = wx.ListControl(Name='消息').GetChildren()
for message in messages:
last_msg = message.Name
print('读取消息', last_msg)
new_numbers = []
for num in re.findall(r'\b\d{11}\b', last_msg):
if int(num) > 10000000000 and int(num) < 20000000000:
new_numbers.append(int(num))
print('符合条件的数字:', new_numbers)
# 将符合条件的数字添加到list1中
list1.extend(new_numbers)
print(list1)
```
在这个示例中,我们使用 `extend()` 函数将 `new_numbers` 列表中的所有元素添加到 `list1` 列表中。这样,每次迭代时 `list1` 列表都会包含所有之前迭代中找到的符合条件的数字。
阅读全文