【问题标题】:Unable to embed awk/bash commands in python无法在 python 中嵌入 awk/bash 命令
【发布时间】:2020-02-10 21:04:42
【问题描述】:

我正在尝试用“\n”替换新行以制作单行证书文件。我正在使用 awk 和 sed 来执行此操作,这在 linux 机器上运行良好。但是,当我尝试将此代码嵌入 python 时,它会抛出语法错误。

>>> import os
>>> os.system("awk '{printf "%s\\n", $0}\' rsacert.pem > test")
  File "<stdin>", line 1
    os.system("awk '{printf "%s\\n", $0}\' rsacert.pem > test")
                                                          ^

SyntaxError: 行继续字符后出现意外字符

【问题讨论】:

  • 您尝试运行的 awk 命令是什么?
  • awk '{printf "%s\\n", $0}\'

标签: python bash python-2.7


【解决方案1】:

语法问题从这里开始:

os.system("awk '{printf "%s\\n", $0}\' rsacert.pem > test")
                        ^

这是 python 字符串终止的地方,您在 python 脚本中插入行控制字符,而不是系统命令

【讨论】:

    【解决方案2】:

    您的命令字符串使用",但它也包含",因此您需要转义这些。

    "awk '{printf \"%s\\n\", $0}\' rsacert.pem > test"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多