千家信息网

Python中如何遍历特定目录下的文件提取指定信息

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章给大家分享的是有关Python中如何遍历特定目录下的文件提取指定信息的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。需求需要遍历某目录下的文件(文本/csv,里面包含
千家信息网最后更新 2025年12月02日Python中如何遍历特定目录下的文件提取指定信息

这篇文章给大家分享的是有关Python中如何遍历特定目录下的文件提取指定信息的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

需求

需要遍历某目录下的文件(文本/csv,里面包含带有http/https协议的url)提取其中所包含的域名并去重输出

代码
#coding:utf-8#author: Duckweeds7import reimport osimport csvimport codecsimport urllibdef splitSign(str1): # 去掉多余符号且提取域名部分 可进行自行修改适应需求    str2 = str1.replace(',','')    proto, rest = urllib.splittype(str2) # 这里用到了urllib库中方法,详情可自行搜索    res, rest = urllib.splithost(rest)    return resdef 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中如何遍历特定目录下的文件提取指定信息"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

0