利用正则表达式提取txt文本中的网址

  批量读取某一个文件夹下的txt文件,并且找出其中的网址。

    import re  
    import os   
    path=r'G:\python code\zhengze'#这个文件目录下存储需要提取的txt文件  
    file_path=[]  
    for filename in os.listdir(path):     #获取path下所有文件的路径  
        file_path.append((os.path.join(path,filename)))  
    print (file_path)  
    #对每个文本调用正则函数进行筛选,筛选过后的数据存入数组final  
    for adress in file_path:  
        file_object=open(adress,'rb')  
        lines = file_object.readlines( )     #将文本中的内容以数组的形式(每行为一个元素)赋给lines 
        file_object.close()
        new_lines=[] 
        for x in lines: 
            new_x = x.split( )     #注意:splitlines是将传入的字符串去除'\n'之后以数组的形式传出,而不是字符串形式 
            for i in new_x:
                try:      #使用try是因为抓取的txt文件会出现utf-8不能解析的字符,所以需要跳过
                    data=i;
                    data = data.decode('utf-8')
                    match_obj=re.search(r"https://.*",data)  
                    if match_obj:  
                        new_lines.append(match_obj.group())  
                except:
                    continue
    final=new_lines
    file_2=open(r'G:\python code\wangzhi1.txt','w+')#新建一个txt文本来存储提取出的网址  
    for x in final:
        for k in range(len(x)):
            if (x[k]=="\""):#网址两端可能会存在",需要将它处理掉。
                x=x[:k]
                break;
        file_2.write(x)  
        file_2.write('\n')  
    file_2.close()

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值