将所有单词另存为python源代码,包括标点符号

时间:2018-07-10 02:56:43

标签: python unicode

就像在python 2.7中一样,我可以将所有unicode字符串保存到Python源代码中。

在以下代码中,

#!/usr/bin/python
#coding:utf-8
a = u'我很好,你呢?'

with open('test.txt', 'wb') as f:
    f.write(repr(a))

我所期望的是给我发回带有以下措词的txt

  

u'\ u6211 \ u5f88 \ u597d \ u002C \ u4f60 \ u5462 \ u003F'

但事实证明是

  

u'\ u6211 \ u5f88 \ u597d,\ u4f60 \ u5462吗?'

为什么不处理标点符号?反正还有标点符号吗?

已更新: 虽然我会在评论中建议@Blckknght建议,因为使用其他编码对于我的目的还是可以的,但是我仍然愿意看是否有将标点符号另存为python字符串的答案。谢谢。

1 个答案:

答案 0 :(得分:2)

repr()具有Unicode字符串的固定表示形式。如果您希望函数以不同的方式显示,则必须编写自己的函数:

#coding:utf8

def my_repr(s):
    return "u'" + ''.join(r'\u{:04x}'.format(ord(c)) for c in s) + "'"

s = u'我很好,你呢?'
print my_repr(s)

输出:

u'\u6211\u5f88\u597d\u002c\u4f60\u5462\u003f'

(但这感觉像是XY问题)