需求
批量验证和添加手机号码为企业微信账号的联系人
源码
import tkinter as tk
import pyautogui as pg
import tkinter.messagebox as msgbox
def setpos():
global x,y
try: x,y = eval(tEntry.get())
except: pass
pg.click(x-150,y)
pg.typewrite('1')
pg.moveTo(x,y,duration=0.5)
def alter(num):
tList.delete(index)
tList.insert(index,phone+','+str(num))
user[index] = phone+','+str(num)
with open("phones.txt","w",encoding="utf-8") as f:
f.write('\n'.join(user))
def flag0():
alter(0)
def flag1():
alter(1)
def flag2():
alter(2)
def start():
global x,y,index,phone
x0,y0 = pg.position()
lines = len(user)
index = -1
for i in user:
index += 1
if len(i)==11:break
phone = user[index]
if len(phone)>11:
msgbox.showinfo('提示','手机号大于11位,或全部结束!')
else:
try:
t = tList.curselection()[0]
tList.select_clear(t,t)
except: pass
tList.select_set(index,index)
pg.click(x-150,y)
pg.typewrite('\b'*50)
pg.typewrite(phone)
pg.moveTo(x,y,duration=0.5)
pg.click()
pg.moveTo(x0,y0)
def main():
'''written by hannyang 2021.10.16'''
global tEntry,tList
global user
root = tk.Tk()
root.geometry(f'375x323+{x+55}+{y-85}')
root.resizable(False, False)
root.title('《企业微信好友》')
root.wm_attributes('-topmost',True)
tEntry = tk.Entry(root,width=8)
tEntry.place(x = 275, y = 270)
tEntry.insert(0,'995,410')
bt1 = tk.Button(root,text=' 定位 ',command = setpos)
bt1.place(x = 220, y = 265)
bt2 = tk.Button(root,text=' 开始 ',command = start)
bt2.place(x = 30, y = 265)
bt3 = tk.Button(root,text=' 标0 ',command = flag0)
bt3.place(x = 80, y = 265)
bt4 = tk.Button(root,text=' 标1 ',command = flag1)
bt4.place(x = 125, y = 265)
bt5 = tk.Button(root,text=' 标2 ',command = flag2)
bt5.place(x = 170, y = 265)
user = []
try:
with open('phones.txt', 'r', encoding='utf-8') as fn:
users = fn.readlines()
for usr in users:
if usr[-1]=='\n': usr=usr[:-1]
user.append(usr.strip())
except:
user = ['当前文件夹中phones.txt文件不存在!']
tScroll=tk.Scrollbar(root, orient=tk.VERTICAL)
tScroll.place(x=330,y=25,height=220)
tList=tk.Listbox(root,selectmode=tk.BROWSE,yscrollcommand=tScroll.set)
tList.place(x=30,y=25,width=300,height=220)
for i in user:
tList.insert(tk.END,i)
tScroll.config(command=tList.yview)
tList.select_set(0,0)
root.update()
tmp = list(set(user))
diff = len(user)-len(tmp)
if diff!=0:
msgbox.showinfo('提示',f'存在{diff}个重复手机号!可忽略')
root.mainloop()
if __name__ == '__main__':
x,y = pg.size()
x = (x - 390)//2 + 350
y = (y - 360)//2 + 65
main()
?注:代码倒数两三行中,390,360是被点窗口的大小,350,65用于定位坐标。
以下是保存电话的文本文件 phones.txt 的内容,手机号码已隐去:
运行
程序没有设置全自动的验证和添加,如果需要的话,则要把相关的按钮截图保存好.png图片,然后使用?pyautogui.locateCenterOnScreen() 等函数来定位,加上循环语句就能达成。
一起学习交流 Python 的群二维码地址:?http://qr01.cn/FHYKEa
|