我有一个如下所示的 XML 文档:
<file>
<name>NAME_OF_FILE</name>
</file>
<file>
<name>NAME_OF_FILE</name>
</file>
我正在尝试编写一个 Python 脚本,它将用“,”替换所有换行符、标签和标签之间的空格(即不是元素本身)。
上述文件的输出应如下所示:
NAME_OF_FILE','NAME_OF_FILE','NAME_OF_FILE','
这是我到目前为止所得到的。我无法准确理解 Python 如何处理换行符:
import sys
import os
import re
source = r'c:\A\grepper.txt'
f = open(source,'r')
out = open(r'c:\A\bout.txt', 'a')
for line in f:
one = re.sub(r"\n", '', line)
two = re.sub(r"\r", '', one)
three = re.sub(r'</name>.*<name>', '\',\'', two)
out.write(three)
out.close()
最佳答案
删除 r
,因为它们逐字引用字符串。
one = re.sub("\n", '', line)
two = re.sub("\r", '', one)
您还可以使用 string.replace()
进行这些简单的替换,以及将它们合并到一行中。
line = re.sub('r</name>.*<name>', "','", line.replace('\n', '').replace('\r', ''))
out.write(line)
但是,这仍然不能解决获得所需输出的问题。我建议为此执行以下操作:
results = []
for line in f:
match = re.search(r'<name>(.*)</name>', line)
if match:
results.append(match.group(1))
print >>out, "','".join(results)
这是它的工作原理:http://ideone.com/ik48G
关于python - 将换行符和 XML 标签替换为 ',',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4549459/