我正在编写基于数据生成C ++代码的python脚本。
我有python变量string
,其中包含一个可以组成的字符串
像"
或换行符这样的字符。
为代码生成转义此字符串的最佳方法是什么?
答案 0 :(得分:3)
我使用的方式基于C ++字符串的基本观察 遵守有关字符和逃避的相同规则作为Javascript / JSON字符串。
Python 2.6版本有一个内置的JSON库,可以序列化Python 数据转换为JSON。因此,代码是,假设我们不需要封闭 引用,如下:
import json
string_for_printing = json.dumps(original_string).strip('"')
答案 1 :(得分:1)
我使用此代码,到目前为止没有问题:
def string(s, encoding='ascii'):
if isinstance(s, unicode):
s = s.encode(encoding)
result = ''
for c in s:
if not (32 <= ord(c) < 127) or c in ('\\', '"'):
result += '\\%03o' % ord(c)
else:
result += c
return '"' + result + '"'
它使用八进制转义来避免所有可能存在问题的字符。