是否有一种"好的"方法来迭代shell命令的输出?
我正在寻找类似以下内容的python:
ls | while read file; do echo $file done
请注意,'ls'只是shell命令的一个示例,它将返回多个行的结果,因为'echo'只是:用它做一些事情.
我知道这些替代方案:在Python中调用外部命令但我不知道使用哪一个或者是否有一个"更好"的解决方案.(事实上,"更好"是这个问题的主要焦点.)
这是用python替换一些bash脚本.
你可以打开一个管道(见文档):
import os with os.popen('ls') as pipe: for line in pipe: print (line.strip())
就像在文档中一样,这种语法被折旧并被更复杂的替换 subprocess.Popen
from subprocess import Popen, PIPE pipe = Popen('ls', shell=True, stdout=PIPE) for line in pipe.stdout: print(line.strip())