相关疑难解决方法(0)

在Python中处理字符串中的转义序列

有时当我从文件或用户那里获得输入时,我会得到一个包含转义序列的字符串.我想以与Python处理字符串文字中的转义序列相同的方式处理转义序列.

例如,假设myString定义为:

>>> myString = "spam\\neggs"
>>> print(myString)
spam\neggs
Run Code Online (Sandbox Code Playgroud)

我想要一个函数(我会称之为process)这样做:

>>> print(process(myString))
spam
eggs
Run Code Online (Sandbox Code Playgroud)

重要的是该函数可以处理Python中的所有转义序列(在上面链接的表中列出).

Python有功能吗?

python string escaping

93
推荐指数
4
解决办法
8万
查看次数

用双引号Python获取str repr

我正在使用一个小的Python脚本来生成一些将在C头中使用的二进制数据.

这个数据应该声明为a char[],如果它可以被编码为一个字符串(当它们不在ASCII可打印字符范围内时具有相关的转义序列)以保持标题比使用小数或十六进制数组编码.

问题是,当我打印reprPython字符串时,它由单引号分隔,而C不喜欢它.天真的解决方案是:

'"%s"'%repr(data)[1:-1]
Run Code Online (Sandbox Code Playgroud)

但是当数据中的一个字节恰好是双引号时,这不起作用,所以我也需要它们进行转义.

我认为简单replace('"', '\\"')可以完成这项工作,但也许有一个更好,更pythonic的解决方案.

额外点:

将数据拆分成大约80个字符的行也很方便,但是再次将大小为80的的源字符串拆分的简单方法将不起作用,因为每个不可打印的字符在转义序列中需要2或3个字符.获得repr 之后将列表拆分为80块也无济于事,因为它可以划分转义序列.

有什么建议?

c python escaping

13
推荐指数
4
解决办法
9200
查看次数

在Python中反向repr函数

如果我有一个字符串(0x61 0x62 0xD),repr该字符串的函数将返回'ab\r'.

有没有办法进行反向操作:如果我有字符串'ab\r'(带字符0x61 0x62 0x5C 0x72),我需要获取字符串0x61 0x62 0xD.

python repr

12
推荐指数
1
解决办法
6487
查看次数

标签 统计

python ×3

escaping ×2

c ×1

repr ×1

string ×1