python文件处理相关

 在附件address-7.txt文件中具有如下的格式:

(1)每个用户的信息由<name>姓名</name>标识分割

(2)电子邮件地址格式: 用户名@域名.域名[.域名]  用户名,域名由[a-zA-Z0-9._]等字符组成,用户名和域名由@相连接,@后面的域名至少有二级

分析附件address-7.txt文件里面每个人的电子邮件地址并打印出来(按照姓名升序),如图所示:

 代码如下:{如果对你有帮助,可以给我个采纳吗,谢谢!! 点击我这个回答右上方的【采纳】按钮}。

import re

with open("address-7.txt","r", encoding='utf-8') as fileObj:
    s = fileObj.read()
ls = re.split(r'<name>(.*?)</name>',s)
li = []
for i in range(1,len(ls),2):
    m = re.findall(r'[a-zA-Z0-9\._]+@[a-zA-Z0-9_]+(?:\.[a-zA-Z0-9_]+)+',ls[i+1])
    li.append([ls[i],m])
li.sort(key=lambda x: x[0])
for i,(n,e) in enumerate(li):
    print(f'{i+1} {n}:')
    for v in e:
        print(f"\t{v}")

用正则式或用bs4解析获取,然后对数据进行归并排序处理

name=re.findall('<name>(.*?)</name>',s)

mail=re.findall('[a-zA-Z0-9._-]+@[\w.]+',s)

用正则表达式分析就可以,你把文件内容发一下

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632