为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

哔哔one 2023-09-05 15:12:44
我想将 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这是我想要附加 html 文件的 HTML 文件的外观:</div></div><footer><div class=container-fl><div class="footer-text"><p class="text-center">您会注意到页脚标记不在行的开头,因此我无法在页脚标记之前附加我的 html。有办法解决这个问题吗?
查看完整描述

1 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

如果您只需要行列表并且不需要更新输入文件,那么:


# 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

a是结果list。


然而,如果你想更新输入文件,下面的方法会更直接:


# 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)


查看完整回答
反对 回复 2023-09-05
  • 1 回答
  • 0 关注
  • 115 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信