• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > python基础教程之popen函数操作其它程序的输入和输出示例

python基础教程之popen函数操作其它程序的输入和输出示例

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了python os.popen,python popen,python popen函数,python中popen,python捕获popen异常等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

一、函数介绍

1.1 函数原型:

1.2 说明

popen函数允许一个程序将另一个程序作为新进程启动,并可以传递数据给它或者通过它接收数据。command字符串是要运行的程序名和相应参数(比如:ls或ls -l),openmode必须是 r 或w。如果是r,被调用程序的输出可以被调用它的程序使用;如果是w,调用程序就可以用fwrite向被调用程序发送数据作为它在标准输入流上的输入。

二、测试程序准备

这里准备两个很简单的程序供下面测试使用。

2.1 输出测试程序

int main()
{
        printf("Just a test ! \n");
        return 0;
}
</div>

主要是实现向标准输出设备输出字符串,供下面的程序进行测试。

2.2 输入测试程序

int main()
{
        char buf[1024] = {0};
        scanf("%s",buf);
        printf("your input : %s\n",buf);
        return 0;
}
</div>

主要是实现从标准输入设备输入字符串并输出,供下面的程序进行测试。

三、popen操作示例(C代码)

3.1 获得程序输出

以outputTest程序来测试,代码如下:

int main()
{
        FILE *read_fp;
        char buffer[BUFSIZ + 1];
        int chars_read;
        memset(buffer,'\0',sizeof(buffer));
        read_fp = popen("./outputTest","r");
        if(read_fp != NULL)
        {
                chars_read = fread(buffer,sizeof(char),BUFSIZ,read_fp);
                if(chars_read > 0)
                {
                        printf("Output was : \n%s\nDone\n",buffer);
                }
                pclose(read_fp);
                exit(EXIT_SUCCESS);
        }
        exit(EXIT_FAILURE);
}
</div>

运行效果如下:


这里主要用r参数获得被调用程序的输出。

3.2 给其它程序传参数

以inputTest来测试,代码如下:

int main()
{
        FILE *write_fp;
        char buffer[BUFSIZ + 1];

        sprintf(buffer,"Once...\n");
        write_fp = popen("./inputTest","w");
        if(write_fp != NULL)
        {
                fwrite(buffer,sizeof(char),strlen(buffer),write_fp);
                pclose(write_fp);
                exit(EXIT_SUCCESS);
        }
        exit(EXIT_FAILURE);
}
</div>

运行效果如下:

这里主要用w参数向被调用程序传参数。

四、poepn操作示例(python代码)

其实python也可以这样玩的。

4.1 获得程序输出

还以上文提到的outputTest程序为例,代码如下:

import os
#var = os.popen('ls -l').read()
var = os.popen('./outputTest').read()
print var
</div>

运行效果如下:

4.2 给其它程序传参数

还以上文提到的inputTest程序为例,代码如下:

import os
os.popen('./inputTest','w').write("test")
</div>

运行效果如下:

 

</div>

您可能想查找下面的文章:

  • python基础教程之popen函数操作其它程序的输入和输出示例

相关文章

  • Python群发邮件实例代码
  • Python中if __name__ == '__main__'作用解析
  • python实现FTP服务器服务的方法
  • python 提取文件的小程序
  • python使用自定义user-agent抓取网页的方法
  • Python 专题三 字符串的基础知识
  • 探究Python的Tornado框架对子域名和泛域名的支持
  • Python三元运算实现方法
  • Python装饰器的函数式编程详解
  • win系统下为Python3.5安装flask-mongoengine 库

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python 爬虫学习笔记之多线程爬虫
    • pymongo为mongodb数据库添加索引的方法
    • Python中return语句用法实例分析
    • python+mysql实现简单的web程序
    • 解读Django框架中的低层次缓存API
    • 详解Python中dict与set的使用
    • Python SQLite3数据库操作类分享
    • python字典键值对的添加和遍历方法
    • MySQL中表的复制以及大型数据表的备份教程
    • Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有