我想将字符串文字转换为r"r'\nasdf'"
字符串('\\nasdf'
在这种情况下)。
另一种情况:r"'\nasdf'"
对'\nasdf'
. 我希望你能明白。
这很重要,因为我有一个 python 脚本解析器,它想知道字符串文字的确切内容。
是eval
一个聪明的解决方案吗?字符串文字在 (with tokenize
) 之前被过滤,不应导致安全责任。没有比评估文字更崇高的解决方案吗?也许是解析器库?
编辑:添加了其他示例,以避免误解。
我想将字符串文字转换为r"r'\nasdf'"
字符串('\\nasdf'
在这种情况下)。
另一种情况:r"'\nasdf'"
对'\nasdf'
. 我希望你能明白。
这很重要,因为我有一个 python 脚本解析器,它想知道字符串文字的确切内容。
是eval
一个聪明的解决方案吗?字符串文字在 (with tokenize
) 之前被过滤,不应导致安全责任。没有比评估文字更崇高的解决方案吗?也许是解析器库?
编辑:添加了其他示例,以避免误解。
你想要ast
模块:
>>> import ast
>>> raw = r"r'\nasdf'"
>>> ast.literal_eval(raw)
'\\nasdf'
>>> raw = r"'\nasdf'"
>>> ast.literal_eval(raw)
'\nasdf'
这是一种评估/解析包含 Python 源代码的字符串的安全方法(不同于eval()
)。
是的,有:
>>> s = r'\nasdf'
>>> s.decode('string-escape')
'\nasdf'