欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于Python制作短信發(fā)送程序

 更新時(shí)間:2023年01月29日 09:24:15   作者:虛壞叔叔  
這篇文章主要為大家詳細(xì)介紹了如何利用Python制作短信發(fā)送程序,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下

一、Python短信發(fā)送界面最后的效果

二、準(zhǔn)備:注冊(cè)騰訊云賬號(hào)并配置短信功能

(1)注冊(cè)騰訊云賬號(hào)

登錄騰訊云網(wǎng)址

(2)獲取AppID、AppKey

在短信功能頁面下,從應(yīng)用管理>應(yīng)用列表,獲取ID、Key。

(3)創(chuàng)建簽名

在短信功能頁面下,進(jìn)入國內(nèi)短信>簽名管理,創(chuàng)建簽名。

(4)創(chuàng)建正文模板

在短信功能頁面下,進(jìn)入國內(nèi)短信>正文模板管理,創(chuàng)建模版。并獲取模板ID備用。

三.初始化短信發(fā)送程序窗口

3.1初始化窗口菜單

菜單具備打開手機(jī)號(hào)碼文件、保存記錄、查看版本等功能。

    menu=tkinter.Menu(root)
    submenu1 = tkinter.Menu(menu, tearoff=0)
    submenu1.add_command(label='打開', command=open_file)
    submenu1.add_command(label='保存', command=save_file)
    menu.add_cascade(label='文件',menu=submenu1)
    submenu3 = tkinter.Menu(menu, tearoff=0)    
    submenu3.add_command(label='版本信息', command=Introduction)
    menu.add_cascade(label='幫助',menu=submenu3)
    root.config(menu=menu)

3.2初始化窗口控件

控件包括號(hào)碼輸入框、發(fā)送信息按鈕,記錄顯示框。

    global text1,text2
    label1 = tkinter.Label(root, text="手機(jī)號(hào)碼:", font=("微軟雅黑", 18))
    label1.place(x=30,y=32)
    text1 = tkinter.Text(root, wrap = 'none', font=("微軟雅黑", 18))
    text1.place(x=30+120,y=30, width=520-120-100, height=40)
    button=tkinter.Button(root, text='發(fā)送信息',width=10, height=20, bg='gray', fg='white', font=("微軟雅黑", 12),command=send_Button)
    button.place(x=480,y=30,width=70, height=40)
    sx = tkinter.Scrollbar(root,orient = tkinter.HORIZONTAL)
    sx.pack(side = tkinter.BOTTOM,fill = tkinter.X)
    sy = tkinter.Scrollbar(root)
    sy.pack(side = tkinter.RIGHT,fill = tkinter.Y)     
    text2 = tkinter.Text(root, yscrollcommand = sy.set, xscrollcommand = sx.set, wrap = 'none', font=("微軟雅黑", 10))
    text2.place(x=30,y=100, width=520, height=400)
    text2.config(wrap=tkinter.WORD)
    text2.see(tkinter.END);
    sx.config(command = text2.xview) 
    sy.config(command = text2.yview)

3.3編寫事件觸發(fā)程序

3.3.1文件打開

def open_file():
    global file_path,phone_numbers,flag
    file_path = filedialog.askopenfilename()
    if file_path is not "":
        data=pandas.read_excel(file_path)
        phone = data['號(hào)碼'].tolist()
        for i in range(len(phone)):
            phone_numbers.append(str(phone[i]))
        text2.insert(tkinter.END,"*********************************"+"\n", '\n')
        text2.see(tkinter.END);
        text2.insert(tkinter.END,"打開文件成功!"+"\n", '\n')
        text2.see(tkinter.END);
        text2.insert(tkinter.END,"文件路徑為:"+file_path+"\n", '\n')
        text2.see(tkinter.END);
        text2.insert(tkinter.END,"文件內(nèi)容如下:"+"\n", '\n')
        text2.see(tkinter.END);
        text2.insert(tkinter.END,data, '\n')
        text2.see(tkinter.END);
        text2.insert(tkinter.END,"\n", '\n')
        text2.see(tkinter.END);
        flag = 1
    else:
        text2.insert(tkinter.END,"*********************************"+"\n", '\n')
        text2.see(tkinter.END);
        text2.insert(tkinter.END,"您未打開文件!"+"\n", '\n')
        text2.see(tkinter.END);
        flag = 0

3.3.2文件保存

def save_file():
    file=open("recorde.txt","a+")
    content=str(text2.get("0.0", "end"))
    file.write(content)
    file.close()
    text2.insert(tkinter.END,"*********************************"+"\n", '\n')
    text2.see(tkinter.END);
    text2.insert(tkinter.END,"保存記錄到recorde.txt成功!"+"\n", '\n')
    text2.see(tkinter.END);
    tkinter.messagebox.showinfo('提示','保存記錄到recorde.txt成功!')
    text2.see(tkinter.END);

3.3.3幫助菜單

def Introduction():
    text2.insert(tkinter.END,"*********************************"+"\n", '\n')
    text2.see(tkinter.END);
    text2.insert(tkinter.END,"版本信息:短信息通知程序 V1.0"+"\n", '\n')
    text2.see(tkinter.END);
    tkinter.messagebox.showinfo('版本信息' ,'短信息通知程序 V1.0')
    text2.see(tkinter.END);

3.3.4發(fā)送按鈕

def send_Button():
    global flag,phone_numbers
    appid = "你的appid"
    appkey = "你的appkey"
    template_id = "你的模板ID"
    sms_sign = "你的公眾號(hào)名稱"
    params = []
    ssl._create_default_https_context = ssl._create_unverified_context  
    ssender = SmsSingleSender(appid, appkey)    
    txt1 = str(text1.get("0.0", "end")).replace('\n', '')
    if flag==0:
        if ',' in txt1:
            phone_numbers=str(text1.get("0.0", "end")).replace('\n', '').split(',')
        elif ',' in txt1:
            phone_numbers=str(text1.get("0.0", "end")).replace('\n', '').split(',')
        else:
            phone_numbers=[]
            phone_numbers.append(txt1)
    else:
        flag = 0
    count=0
    for l in phone_numbers:
        count=count+len(str(l))
    if count%11==0:
        result = ""
        for i in range(len(phone_numbers)):
            try:
                result = ssender.send_with_param(86, phone_numbers[i],template_id, params, sign=sms_sign, extend="", ext="") 
            except HTTPError as e:  
                result=e
            except Exception as e:  
                result=e
            text2.insert(tkinter.END,"*********************************"+"\n", '\n')
            text2.see(tkinter.END);
            text2.insert(tkinter.END,"信息發(fā)送至手機(jī)號(hào):"+"\n"+str(phone_numbers[i])+"\n")
            text2.see(tkinter.END);
            text2.insert(tkinter.END,"信息發(fā)送返回結(jié)果:"+"\n")
            text2.see(tkinter.END);
            text2.insert(tkinter.END,str(result)+"\n", '\n')
            text2.see(tkinter.END);
            if result['errmsg']=='OK':
                text2.insert(tkinter.END,"信息發(fā)送至【"+str(phone_numbers[i])+"】成功!"+"\n")
                text2.see(tkinter.END);
            else:
                text2.insert(tkinter.END,"信息發(fā)送至【"+str(phone_numbers[i])+"】失??!"+"\n")
                text2.see(tkinter.END);
    else:
        text2.insert(tkinter.END,"*********************************"+"\n", '\n')
        text2.see(tkinter.END);
        text2.insert(tkinter.END,"手機(jī)號(hào)碼格式不正確"+"\n", '\n')
        text2.see(tkinter.END);

四、完整源代碼

import tkinter
import tkinter.messagebox
from tkinter import filedialog
import pandas
import ssl
from qcloudsms_py import SmsSingleSender  
from qcloudsms_py.httpclient import HTTPError 

def open_file():
    global file_path,phone_numbers,flag
    file_path = filedialog.askopenfilename()
    if file_path is not "":
        data=pandas.read_excel(file_path)
        phone = data['號(hào)碼'].tolist()
        for i in range(len(phone)):
            phone_numbers.append(str(phone[i]))
        text2.insert(tkinter.END,"*********************************"+"\n", '\n')
        text2.see(tkinter.END);
        text2.insert(tkinter.END,"打開文件成功!"+"\n", '\n')
        text2.see(tkinter.END);
        text2.insert(tkinter.END,"文件路徑為:"+file_path+"\n", '\n')
        text2.see(tkinter.END);
        text2.insert(tkinter.END,"文件內(nèi)容如下:"+"\n", '\n')
        text2.see(tkinter.END);
        text2.insert(tkinter.END,data, '\n')
        text2.see(tkinter.END);
        text2.insert(tkinter.END,"\n", '\n')
        text2.see(tkinter.END);
        flag = 1
    else:
        text2.insert(tkinter.END,"*********************************"+"\n", '\n')
        text2.see(tkinter.END);
        text2.insert(tkinter.END,"您未打開文件!"+"\n", '\n')
        text2.see(tkinter.END);
        flag = 0
    
def save_file():
    file=open("recorde.txt","a+")
    content=str(text2.get("0.0", "end"))
    file.write(content)
    file.close()
    text2.insert(tkinter.END,"*********************************"+"\n", '\n')
    text2.see(tkinter.END);
    text2.insert(tkinter.END,"保存記錄到recorde.txt成功!"+"\n", '\n')
    text2.see(tkinter.END);
    tkinter.messagebox.showinfo('提示','保存記錄到recorde.txt成功!')
    text2.see(tkinter.END);
        
def Introduction():
    text2.insert(tkinter.END,"*********************************"+"\n", '\n')
    text2.see(tkinter.END);
    text2.insert(tkinter.END,"版本信息:短信息通知程序 V1.0"+"\n", '\n')
    text2.see(tkinter.END);
    tkinter.messagebox.showinfo('版本信息' ,'短信息通知程序 V1.0')
    text2.see(tkinter.END);
    

def send_Button():
    global flag,phone_numbers
    appid = "你的appid"
    appkey = "你的appkey"
    template_id = "你的模板ID"
    sms_sign = "你的公眾號(hào)名稱"
    params = []
    ssl._create_default_https_context = ssl._create_unverified_context  
    ssender = SmsSingleSender(appid, appkey)    
    txt1 = str(text1.get("0.0", "end")).replace('\n', '')
    if flag==0:
        if ',' in txt1:
            phone_numbers=str(text1.get("0.0", "end")).replace('\n', '').split(',')
        elif ',' in txt1:
            phone_numbers=str(text1.get("0.0", "end")).replace('\n', '').split(',')
        else:
            phone_numbers=[]
            phone_numbers.append(txt1)
    else:
        flag = 0
    count=0
    for l in phone_numbers:
        count=count+len(str(l))
    if count%11==0:
        result = ""
        for i in range(len(phone_numbers)):
            try:
                result = ssender.send_with_param(86, phone_numbers[i],template_id, params, sign=sms_sign, extend="", ext="") 
            except HTTPError as e:  
                result=e
            except Exception as e:  
                result=e
            text2.insert(tkinter.END,"*********************************"+"\n", '\n')
            text2.see(tkinter.END);
            text2.insert(tkinter.END,"信息發(fā)送至手機(jī)號(hào):"+"\n"+str(phone_numbers[i])+"\n")
            text2.see(tkinter.END);
            text2.insert(tkinter.END,"信息發(fā)送返回結(jié)果:"+"\n")
            text2.see(tkinter.END);
            text2.insert(tkinter.END,str(result)+"\n", '\n')
            text2.see(tkinter.END);
            if result['errmsg']=='OK':
                text2.insert(tkinter.END,"信息發(fā)送至【"+str(phone_numbers[i])+"】成功!"+"\n")
                text2.see(tkinter.END);
            else:
                text2.insert(tkinter.END,"信息發(fā)送至【"+str(phone_numbers[i])+"】失?。?+"\n")
                text2.see(tkinter.END);
    else:
        text2.insert(tkinter.END,"*********************************"+"\n", '\n')
        text2.see(tkinter.END);
        text2.insert(tkinter.END,"手機(jī)號(hào)碼格式不正確"+"\n", '\n')
        text2.see(tkinter.END);


    
def init_frame(root):   
    menu=tkinter.Menu(root)
    submenu1 = tkinter.Menu(menu, tearoff=0)
    submenu1.add_command(label='打開', command=open_file)
    submenu1.add_command(label='保存', command=save_file)
    menu.add_cascade(label='文件',menu=submenu1)
    submenu3 = tkinter.Menu(menu, tearoff=0)    
    submenu3.add_command(label='版本信息', command=Introduction)
    menu.add_cascade(label='幫助',menu=submenu3)
    root.config(menu=menu)
    global text1,text2
    label1 = tkinter.Label(root, text="手機(jī)號(hào)碼:", font=("微軟雅黑", 18))
    label1.place(x=30,y=32)
    text1 = tkinter.Text(root, wrap = 'none', font=("微軟雅黑", 18))
    text1.place(x=30+120,y=30, width=520-120-100, height=40)
    button=tkinter.Button(root, text='發(fā)送信息',width=10, height=20, bg='gray', fg='white', font=("微軟雅黑", 12),command=send_Button)
    button.place(x=480,y=30,width=70, height=40)
    sx = tkinter.Scrollbar(root,orient = tkinter.HORIZONTAL)
    sx.pack(side = tkinter.BOTTOM,fill = tkinter.X)
    sy = tkinter.Scrollbar(root)
    sy.pack(side = tkinter.RIGHT,fill = tkinter.Y)     
    text2 = tkinter.Text(root, yscrollcommand = sy.set, xscrollcommand = sx.set, wrap = 'none', font=("微軟雅黑", 10))
    text2.place(x=30,y=100, width=520, height=400)
    text2.config(wrap=tkinter.WORD)
    text2.see(tkinter.END);
    sx.config(command = text2.xview) 
    sy.config(command = text2.yview)
    root.update()

if __name__=="__main__":
    global flag
    flag = 0
    global phone_numbers
    phone_numbers = []
    root = tkinter.Tk()
    root.title("短信息發(fā)送程序")
    root.geometry('600x520')
    init_frame(root)
    root.mainloop()

以上就是基于Python制作短信發(fā)送程序的詳細(xì)內(nèi)容,更多關(guān)于Python短信發(fā)送的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python中l(wèi)ogging日志記錄到文件及自動(dòng)分割的操作代碼

    Python中l(wèi)ogging日志記錄到文件及自動(dòng)分割的操作代碼

    這篇文章主要介紹了Python中l(wèi)ogging日志記錄到文件及自動(dòng)分割,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Python類的繼承與多態(tài)詳細(xì)介紹

    Python類的繼承與多態(tài)詳細(xì)介紹

    大家好,本篇文章主要講的是Python類的繼承與多態(tài)詳細(xì)介紹,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • pytorch下大型數(shù)據(jù)集(大型圖片)的導(dǎo)入方式

    pytorch下大型數(shù)據(jù)集(大型圖片)的導(dǎo)入方式

    今天小編就為大家分享一篇pytorch下大型數(shù)據(jù)集(大型圖片)的導(dǎo)入方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python實(shí)現(xiàn)打磚塊游戲

    python實(shí)現(xiàn)打磚塊游戲

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)打磚塊游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • python多線程http壓力測(cè)試腳本

    python多線程http壓力測(cè)試腳本

    這篇文章主要為大家詳細(xì)介紹了python多線程http壓力測(cè)試腳本,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • python實(shí)現(xiàn)在windows下操作word的方法

    python實(shí)現(xiàn)在windows下操作word的方法

    這篇文章主要介紹了python實(shí)現(xiàn)在windows下操作word的方法,涉及Python操作word實(shí)現(xiàn)打開、插入、轉(zhuǎn)換、打印等操作的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • 在Python中使用pngquant壓縮png圖片的教程

    在Python中使用pngquant壓縮png圖片的教程

    這篇文章主要介紹了在Python中使用pngquant壓縮png圖片的教程,本文中列舉了一個(gè)壓縮PNG圖片的實(shí)例,需要的朋友可以參考下
    2015-04-04
  • 關(guān)于python中.xpath的使用問題

    關(guān)于python中.xpath的使用問題

    根據(jù)xpath定位到了tr,注意瀏覽器自動(dòng)生成了tbody,在python中要把自動(dòng)生成的tbody層級(jí)去掉,這樣要怎么操作呢?下面通過代碼給大家介紹下python中.xpath的使用問題,感興趣的朋友一起看看吧
    2021-11-11
  • python用match()函數(shù)爬數(shù)據(jù)方法詳解

    python用match()函數(shù)爬數(shù)據(jù)方法詳解

    在本篇文章里小編給大家整理了關(guān)于python用match()函數(shù)爬數(shù)據(jù)方法以及相關(guān)知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)下。
    2019-07-07
  • 使用Keras訓(xùn)練好的.h5模型來測(cè)試一個(gè)實(shí)例

    使用Keras訓(xùn)練好的.h5模型來測(cè)試一個(gè)實(shí)例

    這篇文章主要介紹了使用Keras訓(xùn)練好的.h5模型來測(cè)試一個(gè)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07

最新評(píng)論