为什么要在我的文件中添加\呢?

2024-04-26 03:24:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用以下方法分析xml文件:

  lxml.etree.parse(xmlFile)  

我提取了一些包含单个反斜杠的节点属性 把它们存到字典里

然后我使用以下方法将词典写入文件:

f = open(myFile, 'w')
for k, v in sorted(dic.items()):
    f.write(str((k,v)))
    f.write('\n')
f.flush()
f.close()

我知道问题是,在解析之后,如果我使用以下命令将树写入文件:

     tree.write('output4.xml')

树与原始文件完全相同,但是 保存到myFile中的词典有\\,而不是每个\ 那么为什么python会在找到的地方添加\呢。你知道吗

示例: 这是原始属性:

"\displaystyle\mathbb{Z}_{n}\longrightarrow\mathbb{Z}"

在字典文件中变成:

'\\\displaystyle\\\mathbb{Z}_{n}\\\longrightarrow\\\mathbb{Z}'

Tags: 文件方法字典属性parsexmlmyfilelxml
1条回答
网友
1楼 · 发布于 2024-04-26 03:24:53

str((k,v))使用kv^{}

>>> k = r'\textit{foo}'
>>> v = 'bla'
>>> s = str((k, v))
>>> s
"('\\\\textit{foo}', 'bla')"

这样做的好处是可以用ast.literal_eval反序列化,因为repr的转义字符串与Python文本具有相同的语法:

>>> import ast
>>> print(ast.literal_eval(s)[0])

如果这不是你想要的,你就得找其他的方法写出这对。你知道吗

相关问题 更多 >