小心调用 subprocess,避免因 shell=True 而命令行解析错误
Python 中的 subprocess 模块可以轻松实现执行外部命令和进程的功能。...但是在使用 subprocess 调用复杂命令时,有一个容易犯但影响比较大的错误 - 使用shell=True参数,导致命令行解析错误,子进程执行失败。..."
subprocess.call(cmd, shell=True)
执行后,这个命令同样会解析失败,因为管道符号 | 被 shell 作为字符串传递,而不是真实的管道。...总结
综上,调用 subprocess 执行复杂命令时,如果不必要,最好避免使用 shell=True。直接传入命令列表,可以最大限度避免命令行解析错误的问题。...记录这个教训,在将来调用 subprocess 时多加注意,可以避免很多定制错误和调试时间,让代码更稳定。controllers 和 timeframe 数据结构。