[英]Remove entire line in text file that contain with specific word/string in 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.