本文讲述的是如何在Python中遍历特定目录中的文件以提取特定信息。我觉得边肖很实用,就和大家分享一下作为参考。让我们跟着边肖看一看。
00-1010需要遍历某个目录中的文件(text /csv,其中包含带有http/https协议的url)来提取其中包含的域名并再次输出。
需求
#coding:utf-8
#author:Duckweeds7
进口
进口
导入csv
导入编解码器
importurllib
DefsplitSign(str1):#去掉冗余符号,提取域名部分,可以自行修改,满足需求。
str2=str1.replace(',',')
Proto,rest=urllib。拆分类型(str2) #这里使用的是urllib库中的方法,具体可以自己搜索。
res,rest=urllib.splithost(rest)
返回
Def text _ save (filename,data) : # filename是写入CSV文件的路径,data是要写入的数据列表。
文件=打开(文件名,“a”)# a将w追加为覆盖。
foriirange(len(data)):
S=str(数据[I])。替换('[',' ')。替换(']',' ')#移除[]。这两条线可以根据不同的数据进行选择。
S=S .替换('',' ')。替换('、'、' ')' \ n' #删除单引号和逗号,并在每行的末尾添加换行符。
file.write
file.close()
打印(“完成”)
defwalkFile(文件):
regex=re.compile('[a-za-z]://[^\s]*')
all _ URL=[]
forroot,dirs,filesinos.walk(文件):
#root表示当前正在访问的文件夹路径。
#dirs表示该文件夹下的子目录名称列表。
#files表示该文件夹下的文件列表。
#遍历目录中的文件
forfinfiles:
F _ obj=open (os.path.join (root,f)) #因为files是文件名,所以需要用os.path作为绝对路径拼接。
get _ URL=regex . findall(f _ obj . read())#定期提取其中的URL。
all _ URLs.extend (map (splitSign,get_urls)) # map函数对get_urls中的每个项目执行splitSign函数处理。
set _ URL=set(all _ URL)# set set重复数据消除
text _ save(' e : \ \ test \ \ test . CSV ',list(set _ URL))#输出文件名必须是绝对路径。
if__name__=='__main__':
WalkFile('E:\\test')#输入要处理的文件夹路径。感谢阅读!这篇关于“如何在Python中遍历特定目录中的文件以提取特定信息”的文章就分享到这里。希望
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/115603.html