Python 拆分短信回复
回复短信时,我的限制是160个字符。目前,我已经设置了代码来获取回复(可以大于160),并将其拆分为一个包含多个文本的列表,每个文本长度为160英尺 文本=[] words=repl.split() curtext=“” 用文字表示: #对于第一个单词,删除空格 如果len(curtext)==0: curtext+=字 #检查当前消息中是否有足够的空间 elif len(curtext)Python 拆分短信回复,python,sms,Python,Sms,回复短信时,我的限制是160个字符。目前,我已经设置了代码来获取回复(可以大于160),并将其拆分为一个包含多个文本的列表,每个文本长度为160英尺 文本=[] words=repl.split() curtext=“” 用文字表示: #对于第一个单词,删除空格 如果len(curtext)==0: curtext+=字 #检查当前消息中是否有足够的空间 elif len(curtext)reply=“要发送的文本…” 文本=[] 计数=0 当前文本=[] 对于答复中的word.split():
reply=“要发送的文本…”
文本=[]
计数=0
当前文本=[]
对于答复中的word.split():
如果计数+len(单词)<(160如果len(文本)%2==0其他(160-17)):
当前文本追加(word)
计数+=(len(字)+1)
其他:
计数=0
如果len(文本)%2!=0):
#奇数文本获取附加消息。。。
text.append(“.join(当前_文本)+”\n更多信息请参见m”)
其他:
text.append(“.”join(当前文本))
当前文本=[]
def短信计算器(短信文本):
sms_lst=[]
如果len(msg_text)==0:
返回sms_lst
l_m_text=(msg_text.split())
如果len(最大值(l_m_文本,key=len))>160:
返回sms_lst
sms_字符串=l_m_文本[0]
对于范围(1,len(l_m_文本))中的i:
如果len(sms_字符串+“”+l_m_文本[i])<160:
sms_字符串=sms_字符串+“”+l_m_文本[i]
其他:
sms_lst.append(sms_字符串)
sms_字符串=l_m_文本[i]
sms_lst.append(sms_字符串)
返回sms_lst
您是否试图阻止邮件发送,除非收件人要求发送?是。我不想回复太多的文本。请小心,您应该了解如何处理连接消息,因为您将无法在每个concat部分发送160个字符。使用的八位字节的确切数量取决于网络,并且可能会有很大的差异。它也可能因您将SMS提交到网络所使用的服务而异,例如:将SMPP直接发送到网络、将第三方API或硬件API发送到调制解调器。SMS_lst.append(SMS_字符串)负责最后一条SMS。此外,如果无法发送有效的SMS,将返回空列表。希望用简单python编写的短信计算器能帮助别人。为什么这里有数字17
?我也很好奇
repl='message to be sent. may be >160'
texts=[]
words=repl.split()
curtext=''
for word in words:
#for the first word, drop the space
if len(curtext)==0:
curtext+=word
#check if there's enough space left in the current message
elif len(curtext)<=155-(len(word)+1):
curtext+=' '+word
#not enough space. make a new message
else:
texts.append(curtext)
curtext=word
if curtext!='':
texts.append(curtext)
return texts
reply = "text to be sent ...."
texts = []
count = 0
current_text = []
for word in reply.split():
if count + len(word) < (160 if len(texts) % 2 == 0 else (160-17)):
current_text.append(word)
count += (len(word) + 1)
else:
count = 0
if len(texts) % 2 != 0):
#odd-numbered text gets additional message...
texts.append(" ".join(current_text) + "\nreply m for more")
else:
texts.append(" ".join(current_text))
current_text = []
def sms_calculator(msg_text):
sms_lst=[]
if len(msg_text) == 0:
return sms_lst
l_m_text = (msg_text.split())
if len(max(l_m_text, key=len))> 160:
return sms_lst
sms_string=l_m_text[0]
for i in range(1,len(l_m_text)):
if len(sms_string +' '+ l_m_text[i]) < 160 :
sms_string=sms_string +' '+ l_m_text[i]
else:
sms_lst.append(sms_string)
sms_string = l_m_text[i]
sms_lst.append(sms_string)
return sms_lst