用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,"")
之后没有声明,所以它无法正常工作。此外,您可以结合两个条件:
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)