Python:迭代shell命令结果的好方法

 莪系坏女孩2010 发布于 2023-02-12 18:47

是否有一种"好的"方法来迭代shell命令的输出?

我正在寻找类似以下内容的python:

ls | while read file; do
    echo $file
done

请注意,'ls'只是shell命令的一个示例,它将返回多个行的结果,因为'echo'只是:用它做一些事情.

我知道这些替代方案:在Python中调用外部命令但我不知道使用哪一个或者是否有一个"更好"的解决方案.(事实上​​,"更好"是这个问题的主要焦点.)

这是用python替换一些bash脚本.

1 个回答
  • 你可以打开一个管道(见文档):

    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())
    

    2023-02-12 18:48 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有