在python 3.6

时间:2018-08-17 22:39:35

标签: python escaping python-3.6 compatibility properties-file

我正在尝试编写一个Python脚本,该脚本转换一个.properties文件(由Ant读取),然后将结果转换成字典,将键映射到值。

作为该过程的一部分(使用configparser.RawConfigParser),我发现.properties文件的值已转义,因此我决定遵循最重要的结果尝试对其进行转义(请参阅How do I un-escape a backslash-escaped string in python?)。当我使用python 3(特别是python 3.6)时,我使用value = value.encode('utf-8').decode('unicode_escape')来取消转义字符串。

一切正常,直到我遇到Windows路径,该路径像r'C\:\\Path\\to\\something'一样转义,请注意冒号已转义。在尝试解决此问题时,我决定咨询the documentation,只是发现在最新的python(3.7)中,re.escape无法逃避:。但是,python 3.6可以。这使我开始质疑语言的兼容性:

  1. r'\:'.encode('utf-8').decode('unicode_escape')是否在python 3.7中返回':'r'\:'

  2. 如何在python 3中处理转义冒号,而无需担心版本?如果我继续使用value = value.replace(r'\:', ':')进行解码,则不希望它错误地替换值。

  3. 这是python 3.7中修复的错误吗?

0 个答案:

没有答案
相关问题