【发布时间】:2026-01-06 12:40:01
【问题描述】:
为什么这不起作用:subprocess.Popen(["ls -l | grep myfile"], shell=False)
但是这条线有效:subprocess.Popen(["ls -l | grep myfile"], shell=True)
我理解这个 shell=True 在内部创建一个子 shell 并执行命令。但不明白这如何影响 Popen 行为
【问题讨论】:
-
试试
subprocess.Popen(["ls", "-l", "|", "grep", "shell"], shell=False) -
我的目的是了解 Popen 的行为,而不是让它发挥作用。求解释
-
它不会像预期的那样工作,因为它会假设'|','grep'和'shell'文件名,@Abhishek
标签: python python-3.x subprocess