簡體   English   中英

從文件中刪除一行,在Python中沒有特定的單詞

[英]Remove a line from file NOT having a specific word in Python

用Python編寫的程序,

刪除以<div開始並以>結尾但在其之間沒有text-align單詞的行。

輸入:

<div>
<div><div>
<div style="text-align: center;">
<div kjgueberhfui;hh;ah>
<div kjfh fhefhufh  fhueshf >
<strong>PANKY</strong>
<div style="text-align: left;">

輸出:

<div style="text-align: center;">
<strong>PANKY</strong>
<div style="text-align: left;">

我正在尋找類似的東西:

f1 = open('input.txt','r')
filedata = f1.read()
filedata = re.sub("<div[^>]*/^((?!text-align).)*$/[^>]*>","",filedata)

要么

f1 = open('input.txt','r')
for line in f1:
    if "<div" in line:
        if "text-align" in line;
        else:
            f1.write(line.replace(THIS_LINE,"")

上面的2個代碼不起作用或不完整!

f1 = open('input.txt','r')
for line in f1:
    if "<div" in line:
        if "text-align" in line;
        else:
            f1.write(line.replace(THIS_LINE,"")

if之后沒有語句,因此它不起作用。 此外,您可以結合兩個條件:

with open('input.txt','r') as f1, open('output.txt', 'w') as f_out:
    for line in f1:
        if not ("<div" in line and "text-align" not in line):
            f2.write(line)

您可以使用字符串的startswith和endswith函數。

    if line.startswith('<div') & line.endswith('>') & ('text-align' not in line):
        #do something

謝謝大家,因為有了我,我才得以弄清楚答案,

您的某些代碼輸出的內容與我的要求相反,但這是我的答案的解決方案,

f1 = open('input.txt','r')
f2 = open('output.txt','w')

for line in f1:
    if "<div" in line and "text-align" in line:
        f2.write(line)
    if "<div" not in line:
        f2.write(line)

f1.close()
f2.close()

這個問題的更正確和完整的答案是這樣的:

lines = open("input.txt").read().splitlines()

with open("input.txt", "w") as file:
    for line in lines:
        if not (line.startswith("<div") and "text-align" not in line and line.endswith(">")):
            file.write(line + "\n")

這將從input.txt刪除所有不需要的行

我希望這能幫到您:

with open('input.txt','rb+') as f1:    
    for div in f1:
          if 'text-align' in div or '<div' not in div:
                print(div)

暫無
暫無

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

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