replace-stdout-stderr (UP022)
源自 pyupgrade linter。
有时提供修复。
作用
检查 subprocess.run 的使用,该使用会将 stdout 和 stderr 发送到管道。
为什么这不好?
从 Python 3.7 开始,subprocess.run 有一个 capture_output 关键字参数,可以设置为 True 来捕获 stdout 和 stderr 输出。 这等同于将 stdout 和 stderr 设置为 subprocess.PIPE,但更明确且更易读。
示例
建议改为
修复安全性
此规则的修复被标记为不安全,因为将 stdout=subprocess.PIPE 和 stderr=subprocess.PIPE 替换为 capture_output=True 可能会删除附加到原始参数的注释。