首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Telnetlib、字节字符串和“无效转义序列”

Telnetlib、字节字符串和“无效转义序列”
EN

Stack Overflow用户
提问于 2018-11-09 09:45:48
回答 1查看 751关注 0票数 2

显然,我正在使用telnetlib.expect()与一个以字节串响应的设备进行接口。除非我在传递给expect()的正则表达式(预编译或文字)中使用字节字符串,否则将生成一个异常:TypeError: cannot use a string pattern on a bytes-like object。然而,pycodestyle抱怨这是W605 invalid escape sequence '\d',进一步的阅读使我认为这将成为将来的Python语法错误。

总结如下:

代码语言:javascript
复制
telnetlib.expect([b'\d']) # OK, but W065
telnetlib.expect(['\d'] # TypeError
telnetlib.expect([r'\d'] # TypeError

是否有办法解决这一问题,或者说,pycodestyle是完全错误的?

(顺便说一句,除了禁止所有警告之外,似乎无法在pycodestyle中抑制W065。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-09 10:59:52

字节字符串文本使用\作为转义字符的方式与字符串文本相同。因此,与它们类似,您必须使用原始字节串文本rb'\d'或使用双反斜杠b'\\d'

来自analysis.html#string-and-bytes-literals

在简单的英语中:两种类型的文字都可以用匹配的单引号(')或双引号(")括起来。它们也可以包含在三个单引号或双引号的匹配组中(通常称为三引号)。反斜杠(\)字符用于转义具有特殊意义的字符,如换行符、反斜杠本身或引号字符。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53223306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档