Dav*_*ter 16 python string string-literals
我想将字符串文字转换为r"r'\nasdf'"字符串('\\nasdf'在本例中).
另一个案例:r"'\nasdf'"到'\nasdf'.我希望你明白.
这很重要,因为我有一个python脚本解析器,想要知道字符串文字的确切内容.
是eval一个聪明的解决方案?字符串文字在(使用tokenize)之前被过滤,不应导致安全责任.除了评估文字之外,还没有更高级的解决方案吗?解析器库可能吗?
编辑:添加其他示例,以避免误解.
Tim*_*ker 22
你想要的ast模块:
>>> import ast
>>> raw = r"r'\nasdf'"
>>> ast.literal_eval(raw)
'\\nasdf'
>>> raw = r"'\nasdf'"
>>> ast.literal_eval(raw)
'\nasdf'
Run Code Online (Sandbox Code Playgroud)
这是一种用于评估/解析包含Python源代码的字符串的安全方法(与此不同eval()).
是的,有:
>>> s = r'\nasdf'
>>> s.decode('string-escape')
'\nasdf'
Run Code Online (Sandbox Code Playgroud)