簡體   English   中英

Python 在特定文本前插入文本

[英]Python Insert text before a specific text

我想在頁腳標記之前將一個 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。 有沒有辦法解決這個問題?

如果您只需要行列表而不需要更新輸入文件,則:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM