用Python替换html字符串
我已经为此挣扎了一段时间。我一直在尝试使用Python根据文件夹的内容修改html。但每当我试图修改它,整个事情都会崩溃。我对Python和HTML都是新手。我创建了一个类来加载HTML文件和一些子函数来修改它:用Python替换html字符串,python,html,Python,Html,我已经为此挣扎了一段时间。我一直在尝试使用Python根据文件夹的内容修改html。但每当我试图修改它,整个事情都会崩溃。我对Python和HTML都是新手。我创建了一个类来加载HTML文件和一些子函数来修改它: class htmlfile(object): data = "" def openHTML(self, name="main.html"): # f = open('main.html') # for line in f:
class htmlfile(object):
data = ""
def openHTML(self, name="main.html"):
# f = open('main.html')
# for line in f:
# #print line.replace("Thinominal", "")
with open(name) as myHtml:
data = myHtml.read()
self.data = data
# def __repr__(self):
# return "Test()"
def __str__(self):
return self.data
def replace(self, location, insert):
self.data.replace(location, insert)
def makeBackground(self, location):
self.data.replace("backgrounds: [", "backgrounds: ["+ getPhotos2())
另一个函数用于从文件夹中获取“内容”/“照片”列表,并返回稍后将插入HTML的字符串:
def getPhotos2(dir, type="jpg"): # get Photo from a directory with a chosen Type. Default Type = jpg
os.chdir(dir)
data = ""
for file in glob.glob("*.%s" % type):
data = data + "{src: '%s/%s', fade: 2000}," % (dir, file)
return data
但每当我运行此操作时,就会出现以下错误:
self = <__main__.htmlfile object>, self.data = '<!DOCTYPE html>\r\n<html lang="en">\r\n<head>\r\n <...\n</script>\r\n<!-- /Navbar-->\r\n\r\n</body>\r\n\r\n</html>', self.data.toString undefined, global getPhotos2 = <function getPhotos2>
我希望能够像替换字符串一样替换Html的任何部分。例如:
这是手动填充的:
backgrounds: [
{src: './img/nature1.jpg', fade: 2000},
{src: './img/bw1.jpg', fade: 2000},
{src: './img/portrait1.jpg', fade: 2000},
{src: './img/portrait5.jpg', fade: 2000},
{src: './img/portrait2.jpg', fade: 2000},
{src: './img/portrait3.jpg', fade: 2000},
{src: './img/portrait4.jpg', fade: 2000},
{src: './img/forest.jpg', fade: 2000}
]
使用“makeBackground”函数,它将生成这些字符串并将其插入HTML中。如果我有一个包含coolImg.jpg的文件夹调用后台。生成背景将生成:{src:'./img/coolImg.jpg',fade:2000}
并将其插入“背景:”部分。结果:
backgrounds: [
{src: './img/nature1.jpg', fade: 2000},
{src: './img/bw1.jpg', fade: 2000},
{src: './img/portrait1.jpg', fade: 2000},
{src: './img/portrait5.jpg', fade: 2000},
{src: './img/portrait2.jpg', fade: 2000},
{src: './img/portrait3.jpg', fade: 2000},
{src: './img/portrait4.jpg', fade: 2000},
{src: './img/forest.jpg', fade: 2000},
{src: './background/coolImg.jpg', fade: 2000} <- THIS HERE
]
背景:[
{src:'./img/nature1.jpg',fade:2000},
{src:'./img/bw1.jpg',fade:2000},
{src:'./img/graphit1.jpg',fade:2000},
{src:'./img/graphic5.jpg',fade:2000},
{src:'./img/graphit2.jpg',fade:2000},
{src:'./img/graphic3.jpg',fade:2000},
{src:'./img/graphic4.jpg',fade:2000},
{src:'./img/forest.jpg',fade:2000},
{src:'./background/coolImg.jpg',fade:2000}我现在知道了如何让它工作。这主要是我作为一个noob的错误。我忘了设置替换字符串的值来替换原始字符串。如下所示:
self.data = self.data.replace(oldstring, newstring)
“self.data=”已丢失。
我还忘了给出函数所要求的参数量
def getPhotos2(dir, type="jpg"): # get Photo from a directory with a chosen Type. Default Type = jpg
os.chdir(dir)
data = ""
for file in glob.glob("*.%s" % type):
data = data + "{src: '%s/%s', fade: 2000}," % (dir, file)
return data
print "Content-type: text/html\n"
# html class
class htmlfile(object):
data = ""
def openHTML(self, name="main.html"):
with open(name) as myHtml:
data = myHtml.read()
self.data = data
def __str__(self):
return self.data
def replace(self, location, insert):
self.data = self.data.replace(location, insert)
def makeBackground(self, location):
self.data = self.data.replace("backgrounds: [", "backgrounds: ["+ getPhotos2(location))
htmlfile = htmlfile()
htmlfile.openHTML()
htmlfile.makeBackground("photo")
print htmlfile
这项工作,如果有人能发现任何错误,请随时告诉我。感谢大家尝试帮助^^您没有显示任何错误。您在哪里调用函数?您对结果做了什么?让我们知道您如何调用函数以及您希望实现什么。一个示例会有所帮助。对不起,我用通常,我如何调用function.makeBackground只是一个过于复杂的STR.Replace函数()。
self.data = self.data.replace(oldstring, newstring)
def getPhotos2(dir, type="jpg"): # get Photo from a directory with a chosen Type. Default Type = jpg
os.chdir(dir)
data = ""
for file in glob.glob("*.%s" % type):
data = data + "{src: '%s/%s', fade: 2000}," % (dir, file)
return data
print "Content-type: text/html\n"
# html class
class htmlfile(object):
data = ""
def openHTML(self, name="main.html"):
with open(name) as myHtml:
data = myHtml.read()
self.data = data
def __str__(self):
return self.data
def replace(self, location, insert):
self.data = self.data.replace(location, insert)
def makeBackground(self, location):
self.data = self.data.replace("backgrounds: [", "backgrounds: ["+ getPhotos2(location))
htmlfile = htmlfile()
htmlfile.openHTML()
htmlfile.makeBackground("photo")
print htmlfile