python 网络通信跟字符串魔法

Python网络通信跟字符串魔法其实就是一回事。第一个步骤是先给socket_send_string函数送过去一段文字,程序就会给它弄上个固定的格式外套,然后通过叫着特定名字的socket给发出去。函数的样式大概是这样: socket_send_string(str, socket_name='socket_0') str就是咱们要发出去的原始文字,socket_name就是目标socket的别称,默认的是 'socket_0'。 文字一旦从这台机器里溜出去,在网上就像没穿衣服一样乱跑,直到那边的那个叫对应名字的socket收下为止。 接着来聊聊字符串怎么折腾。我们有五种常用的操作方式:切、拼、求长、取子串、转码。 第一招叫str_at,就像我们用数组一样找某个位置的字符。把源字符串src和位置索引index丢进去,它就能把src里面index处的字符直接吐出来,不过要注意索引是从1开始数的,如果给的数太大或者太小就会报错。 第二招是str_cat,就是把两段字符串粘在一起。把操作数op1和op2扔进去,它就会把它们拼成一段新字符串给你,原来的那两段字符串根本不会被改坏,最后得到的是拼接后的结果。 第三招是str_len,专门用来数数看字符串有多长。不管是一个字符还是好多复杂的汉字(比如UTF-8里的),把str扔进去它都能把字符的个数准确地算出来告诉你。 第四招是str_sub,这招最灵活。把源字符串src、起始位置index和要截取的长度len给它,它就能从src的index开始,截取一段长度为len的子串给你。要是index超出了范围,它会自己调整一下截到末尾;要是len超过了剩下的字符数,那就直接全部截下来。 最后一招叫to_str,特别厉害的是它能把各种乱七八糟的数据都变成大家都能看懂的文字。不管是整数、小数、列表还是字典,丢进去都能变成人话,通常用来打日志或者输出给人看。 总的来说呢,把数据按规矩包装好通过socket发出去,对方那边再按格式拆开看就行;在本地处理文字的时候呢,这五招组合拳——str_at、str_cat、str_len、str_sub、to_str——完全可以搞定90%的情况。学会这套方法,你就有了在网络世界和文字江湖里来回穿梭的万能钥匙。