我编写了一段程序,我希望他能一直运行,当我再微信上输入38101,后,程序只返回一次38101的维护信息。当下次再输入38102时,程序只返回一次38102的维护信息。
当前我的程序是输入38101后,程序一直输出38101的维护信息。
我该如何操作?望请告知,不胜感谢。
```python
import xlrd
ws=xlrd.open_workbook("维护记录.xls").sheet_by_name('维护时间')
from wxauto import WeChat
wx=WeChat()
wx.GetSessionList()
while True:
msg = wx.GetLastMessage
msg1=''.join(msg[1])
for x in range(1, 192):
cell0 = ws.cell_value(x, 0)
if str(int(cell0)) == msg1:
cell3 = ws.cell_value(x, 3)
cell4 = ws.cell_value(x, 4)
who = 'test'
wx.ChatWith(who)
wx.SendMsg("维护日期:" + str(cell3) +
" 维护时长:" + str(int(cell4)) + "天")
```
这样改试试
import xlrd
ws=xlrd.open_workbook("维护记录.xls").sheet_by_name('维护时间')
from wxauto import WeChat
wx=WeChat()
wx.GetSessionList()
pre_num = None
while True:
msg = wx.GetLastMessage
msg1=''.join(msg[1])
if msg1 == pre_num:
continue
for x in range(1, 192):
cell0 = ws.cell_value(x, 0)
if str(int(cell0)) == msg1:
cell3 = ws.cell_value(x, 3)
cell4 = ws.cell_value(x, 4)
who = 'test'
wx.ChatWith(who)
wx.SendMsg("维护日期:" + str(cell3) +
" 维护时长:" + str(int(cell4)) + "天")
pre_num = msg1
不明白这跟微信有什么关系
这问题的关键在于,不管你是用循环实现也好,用基于事件调用的机制也罢
你总要先确定一个触发条件,什么样的情况下才执行代码
反正我是没看懂你到底要把8101写在什么地方
SendMsg后面加break不行么,还是说你要执行什么其他代码。
```python
import xlrd
ws=xlrd.open_workbook("维护记录.xls").sheet_by_name('维护时间')
from wxauto import WeChat
wx=WeChat()
wx.GetSessionList()
while True:
msg = wx.GetLastMessage
msg1=''.join(msg[1])
for x in range(1, 192):
cell0 = ws.cell_value(x, 0)
if str(int(cell0)) == msg1:
cell3 = ws.cell_value(x, 3)
cell4 = ws.cell_value(x, 4)
who = 'test'
wx.ChatWith(who)
wx.SendMsg("维护日期:" + str(cell3) +
" 维护时长:" + str(int(cell4)) + "天")
break # 退出循环