用Python替换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:

我已经为此挣扎了一段时间。我一直在尝试使用Python根据文件夹的内容修改html。但每当我试图修改它,整个事情都会崩溃。我对Python和HTML都是新手。我创建了一个类来加载HTML文件和一些子函数来修改它:

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