您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Python中如何遍歷特定目錄下的文件提取指定信息的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
需要遍歷某目錄下的文件(文本/csv,里面包含帶有http/https協議的url)提取其中所包含的域名并去重輸出
#coding:utf-8 #author: Duckweeds7 import re import os import csv import codecs import urllib def splitSign(str1): # 去掉多余符號且提取域名部分 可進行自行修改適應需求 str2 = str1.replace(',','') proto, rest = urllib.splittype(str2) # 這里用到了urllib庫中方法,詳情可自行搜索 res, rest = urllib.splithost(rest) return res def text_save(filename, data):#filename為寫入CSV文件的路徑,data為要寫入數據列表. file = open(filename,'a') # a為追加 w為覆蓋 for i in range(len(data)): s = str(data[i]).replace('[','').replace(']','')#去除[],這兩行按數據不同,可以選擇 s = s.replace("'",'').replace(',','') +'\n' #去除單引號,逗號,每行末尾追加換行符 file.write(s) file.close() print("Complete") def walkFile(file): regex = re.compile('[a-zA-z]+://[^\s]*') all_urls = [] for root, dirs, files in os.walk(file): # root 表示當前正在訪問的文件夾路徑 # dirs 表示該文件夾下的子目錄名list # files 表示該文件夾下的文件list # 遍歷目錄下的文件 for f in files: f_obj = open(os.path.join(root, f)) # 由于files是文件名需要與os.path拼接為絕對路徑 get_urls = regex.findall(f_obj.read()) # 正則提取其中的url all_urls.extend(map(splitSign, get_urls)) # map函數對get_urls中的每一項進行splitSign函數處理 set_urls = set(all_urls) # set集合去重處理 text_save('E:\\test\\test.csv',list(set_urls)) # 輸出的文件名 需要是絕對路徑 if __name__ == '__main__': walkFile('E:\\test') # 輸入需要處理的文件夾路徑
感謝各位的閱讀!關于“Python中如何遍歷特定目錄下的文件提取指定信息”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。