繁体   English   中英

Python将字符串文字转换为字符串

[英]Python convert string literals to strings

我想将字符串文字如r"r'\\nasdf'"转换为字符串(在本例中为'\\\\nasdf' )。

另一个案例: r"'\\nasdf'"'\\nasdf' 我希望你明白。

这很重要,因为我有一个python脚本解析器,想要知道字符串文字的确切内容。

eval是一个聪明的解决方案吗? 字符串文字在之前被过滤(使用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'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM