转义包含带有“\ r”(python)的路径的控制台字符串

问题描述 投票:0回答:1

我需要通过串口将以下命令发送到busybox设备:

SBC1000 > setenv serverip '192.168.128.100'
SBC1000 > setenv fsfile '1k\root.jffs2-128k'
SBC1000 > saveenv

我可以使用反斜杠逃避第一行的单引号而没有问题:

cmd = 'setenv serverip \'192.168.128.100\''

我已经尝试了第二行的反斜杠的各种组合,但无法使1k \ root部分正确转义。我相信它被解释为回归。我尝试了双重和三重逃生但没有成功。

我终于偶然发现了

cmd = 'setenv fsfile \'1k\\\u0072oot.jffs2-128k\''

为我的字符串包含\ r(不是返回)。

有没有更可读的方法在我的字符串中包含这个\ r(不是返回)模式?

python escaping python-unicode
1个回答
-1
投票

解决方案是使用John Szakmeister建议的双引号“”。

我发现命令字符串是基于pexpect-serial传递给私有类中的函数的。

我的猜测是我的字符串是由pexpect以贪婪的方式进行评估的。通过使用明确的分隔符,问题得以克服。

© www.soinside.com 2019 - 2024. All rights reserved.