【问题标题】:Escape a console string containing a path with "\r" (python)转义包含带有“\r”路径的控制台字符串(python)
【发布时间】:2019-03-08 18:57:06
【问题描述】:

我需要通过串口向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 (不是 return )。

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

【问题讨论】:

  • 你试过cmd = "setenv fsfile '1k\\root.jffs2-128k'"吗?或者使用原始字符串:cmd = r"setenv fsfile '1k\root.jffs2-128k'"
  • 我找到了这个线程here,可能会解决它。不能自己尝试。

标签: python escaping python-unicode


【解决方案1】:

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

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

我的猜测是 pexpect 正在以一种贪婪的方式评估我的字符串。通过使用不同的分隔符,问题得到解决。

【讨论】:

    猜你喜欢
    • 2021-07-07
    • 2015-09-12
    • 2021-07-23
    • 1970-01-01
    • 2013-08-03
    • 2016-06-11
    • 2016-12-26
    • 2019-05-30
    • 1970-01-01
    相关资源
    最近更新 更多