用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)
OR
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个代码无效或不完整!
答案 0 :(得分: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)
答案 1 :(得分:2)
您可以使用字符串的startswith和endswith函数。
if line.startswith('<div') & line.endswith('>') & ('text-align' not in line):
#do something
答案 2 :(得分:1)
谢谢大家, 因为你们所有我能够找到答案,
你的一些代码输出与我要求的相反,但这里的代码是我的答案的解决方案,
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()
答案 3 :(得分:0)
对这个问题的更正确和完整的答案是这样的:
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
答案 4 :(得分:0)
我希望这会对你有所帮助:
with open('input.txt','rb+') as f1:
for div in f1:
if 'text-align' in div or '<div' not in div:
print(div)