【发布时间】:2016-01-01 20:33:19
【问题描述】:
我有一个如下所示的文件:
<VirtualHost *:80>
ServerName Url1
DocumentRoot Url1Dir
</VirtualHost>
<VirtualHost *:80>
ServerName Url2
DocumentRoot Url2Dir
</VirtualHost>
<VirtualHost *:80>
ServerName REMOVE
</VirtualHost>
<VirtualHost *:80>
ServerName Url3
DocumentRoot Url3Dir
</VirtualHost>
我想删除这段代码的地方(它不会改变):
<VirtualHost *:80>
ServerName REMOVE
</VirtualHost>
我尝试使用下面的代码找到整段代码,但它似乎不起作用。
with open("out.txt", "wt") as fout:
with open("in.txt", "rt") as fin:
for line in fin:
fout.write(line.replace("<VirtualHost *:80>\n ServerName REMOVE\n</VirtualHost>\n", ""))
【问题讨论】:
-
你不应该做
fin.read()什么的吗?for line in fin会这样工作吗?如果是这样,您正在逐行读取文件,因此替换 3 行将不起作用... -
这看起来像一个 XML 文件,所以也许您可以使用 XML 解析器来完成该任务。例如。 lxml 或 beautifulsoup.
-
正如 karlson 所写,您可能应该更新问题以表达目标。更好的解决方案可能与您现在尝试的略有不同。您甚至可以使用内置模块 xml.etree.ElementTree
-
@pepr 是的,但是我现在拥有的代码也将与我将在未来制作的不是 XML 的东西一起使用,因此它与删除无关XML。
标签: python