python:子进程抛出未终止的 `s' 错误

标签 python

我现有的代码需要一些修改。我找不到更好更简单的方法来在 python 中完成它并且可以使用 unix 实现我想要的。所以我试图在代码中添加子进程并抛出错误。

subprocess.call(['sed', '-i', '-e',  ':a;/"$/{P;D};N;s/\n//g;ba', file1])

上面是代码,我得到的错误是

sed: -e expression #1, char 17: unterminated `s' command

我做错了什么?

谢谢

最佳答案

好的,首先,您的字符串确实不完整,因为 \n 字符在 传递给 sed 之前被 python 转义了这会在您的 sed 规则中换行,使其确实不完整。解决这个问题:

subprocess.call(['sed', '-i', '-e',  ':a;/"$/{P;D};N;s/\\n//g;ba', file1])

话虽如此,您应该能够使用基本的 Python 字符串操作和 PCRE 实现同样的效果。

关于python:子进程抛出未终止的 `s' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53873394/

相关文章:

python - 多 GPU 似乎不适用于 TensorFlow1.0

python - 类 View 返回对象没有属性 'rindex' 错误

python - 在 python 中使用 COM dll?

Python:减少(字符串列表)-> 字符串

python - 语法错误 : Generator expression must be parenthesized

python - NumPy 不会在 OS X 10.7 上从 1.5.1 升级到 1.6.2

python - GTK 拖放验证 X11 光标在 Drag_get_data 内锁定

python - 使用 matplotlib 动画时权限被拒绝

python - 如何使用 Python 将 WebP 图像转换为 Gif?

python - 根据近似或精确匹配合并两个 Pandas DataFrame