利用正则表达式提取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()