Python在特定文本之前插入文本

Python在特定文本之前插入文本,python,html,Python,Html,我想在页脚标记之前将一个html文件(myhtml.html)附加到现有的html(abc.html)中 下面是我用来做这件事的代码: with open("abc.html", "r+") as f: a = [x.rstrip() for x in f] print(a) index = 0 for item in a: if item.startswith("<footer")

我想在页脚标记之前将一个html文件(myhtml.html)附加到现有的html(abc.html)中

下面是我用来做这件事的代码:

with open("abc.html", "r+") as f:
    a = [x.rstrip() for x in f]
    print(a)
    index = 0
    for item in a:
        if item.startswith("<footer"):
        
            with open("myhtml.html","r") as f_insert:
                a_insert = [x_insert.rstrip() for x_insert in f_insert]
                
                index_insert = 0
                print(index)
                print(index_insert)
                for item_insert in a_insert:
                    a.insert(index, item_insert) 
                    index +=1
            break
        index += 1
打开(“abc.html”,“r+”)作为f:
a=[x.rstrip()表示f中的x]
印刷品(a)
索引=0
对于a中的项目:

如果item.startswith(“如果您只需要行列表而不需要更新输入文件,则:

# read once
with open("myhtml.html","r") as f_insert:
    a_insert = [line.rstrip() for line in f_insert]

with open("abc.html", "r") as f:
    a = [line.rstrip() for line in f]
    for i, line in enumerate(a):
        if "<footer" in line:
            a[i:i] = a_insert
            break

您是否尝试过使用
BeautifulSoup
库。是的,我使用了它,但beautiful soup破坏了我附加的html中的图形,而不是
if item.startswith(“
# read once
with open("myhtml.html","r") as f_insert:
    a_insert = [line.rstrip() for line in f_insert]

with open("abc.html", "r") as f:
    a = [line.rstrip() for line in f]
    for i, line in enumerate(a):
        if "<footer" in line:
            a[i:i] = a_insert
            break
# read once
with open("myhtml.html","r") as f_insert:
    a_insert = f_insert.readlines() # keep whitespace at end

with open("abc.html", "r+") as f:
    a = f.readlines() # keep whitespace at end
    for i, line in enumerate(a):
        if "<footer" in line:
            a[i:i] = a_insert
            break
    f.seek(0, 0) # position to start of file
    for line in a:
        f.write(a)