我必须在数千个html文件上替换某些类型,并且我打算使用linux脚本。 以下是我必须要做的替换的一些例子
来自: <a class="wiki_link" href="/WebSphere+Application+Server">
收件人: <a class="wiki_link" href="/confluence/display/WIKIHAB1/WebSphere%20Application%20Server">
这意味着,将/ confluence / display / WIKIHAB1添加为前缀,并将“+”替换为“%20”。
我会为其他标签做同样的事情,比如img,iframe等等......
首先,我应该使用哪种工具来制作它?桑达? AWK?其他
如果有人有任何例子,我真的很感激。
由于
答案 0 :(得分:0)
#!/usr/bin/python
import os
from bs4 import BeautifulSoup
#Replaces plus sign(+) by %20 and add /confluence... prefix to each
#href parameter at anchor(a) tag that has wiki_link in class parameter
def fixAnchorTags(soup):
tags = soup.find_all('a')
for tag in tags:
newhref = tag.get("href")
if newhref is not None:
if tag.get("class") is not None and "wiki_link" in tag.get("class"):
newhref = newhref.replace("+", "%20")
newhref = "/confluence/display/WIKIHAB1" + newhref
tag['href'] = newhref
#Creates a folder to save the converted files
def setup():
if not os.path.exists("converted"):
os.makedirs("converted")
#Run all methods for each html file in the current folder
def run():
for file in os.listdir("."):
if file.endswith(".html"):
print "Converting " + file
htmlfile = open(file, "r")
converted = open("converted/"+file, "w")
soup = BeautifulSoup(htmlfile, "html.parser")
fixAnchorTags(soup)
converted.write(soup.prettify("UTF-8"))
converted.close()
htmlfile.close()
setup()
run()