在Python中将ascii查找表存储在文件中

Kei*_*itt 1 python encoding ascii escaping

我现在有一个在python中硬编码的查找表,看起来像:

   lookup = {
       "\x85": u'...', # ...
       "\x91": u"'",
       ...
   }
Run Code Online (Sandbox Code Playgroud)

我想将映射移动到外部文件以使其更易于管理,但是无法找到存储x转义字符代码的方法并将其读回.而不是'\ x85',我最终用'\ x85'.

有任何想法吗?

NPE*_*NPE 5

如果您格式化文件如下:

{
       "\x85": u'...',
       "\x91": u"'"
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用ast.literal_eval()查找表进入您的程序:

In [10]: ast.literal_eval(open('lookup.txt').read())
Out[10]: {'\x85': u'...', '\x91': u"'"}
Run Code Online (Sandbox Code Playgroud)

如果您想使用自定义格式,您可以只存储键的十六进制ASCII码(例如85,91等),并在阅读时转换它们:

In [17]: chr(int('91', 16))
Out[17]: '\x91'
Run Code Online (Sandbox Code Playgroud)

  • @MariaZverina没必要.`literal_eval()`被明确定义为可以安全地用于文档中的任何数据.(与'eval()`形成鲜明对比.) (2认同)