位置: IT常识 - 正文

Python与Shell脚本的交互(shell和pycharm)

编辑:rootadmin

推荐整理分享Python与Shell脚本的交互(shell和pycharm),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python和shell脚本,python和shell脚本,python与shell脚本交互,python shell和python,shell脚本与python脚本的区别,脚本语言shell,python,脚本语言shell,python,python和shell脚本,内容如对您有帮助,希望把文章链接给更多的朋友!

考虑这样一个问题,有hello.py脚本,输出”hello, world!”;有TestInput.py脚本,等待用户输入,然后打印用户输入的数据。那么,怎么样把hello.py输出内容发送给TestInput.py,最后TestInput.py打印接收到的”hello, world!”。下面来逐步讲解一下shell的交互方式。

hello.py代码如下:

#!/usr/bin/pythonprint"hello,world!"

TestInput.py代码如下:

#!/usr/bin/pythonstr=raw_input()print("inputstringis:%s"%str)

1.os.system(cmd)

这种方式只是执行shell命令,返回一个返回码(0表示执行成功,否则表示失败)

retcode=os.system("pythonhello.py")print("retcodeis:%s"%retcode);

输出:

hello,world!retcodeis:0Python与Shell脚本的交互(shell和pycharm)

2.os.popen(cmd)

执行命令并返回该执行命令程序的输入流或输出流.该命令只能操作单向流,与shell命令单向交互,不能双向交互.

返回程序输出流,用fouput变量连接到输出流

fouput=os.popen("pythonhello.py")result=fouput.readlines()print("resultis:%s"%result);

输出:

resultis:['hello,world!\n']

返回输入流,用finput变量连接到输出流

finput=os.popen("pythonTestInput.py","w")finput.write("howareyou\n")

输出:

inputstringis:howareyou

3.利用subprocess模块

subprocess.call()

类似os.system(),注意这里的”shell=True”表示用shell执行命令,而不是用默认的os.execvp()执行.

f=call("pythonhello.py",shell=True)printf

输出:

hello,world!subprocess.Popen()

利用Popen可以是实现双向流的通信,可以将一个程序的输出流发送到另外一个程序的输入流.

Popen()是Popen类的构造函数,communicate()返回元组(stdoutdata, stderrdata).

p1=Popen("pythonhello.py",stdin=None,stdout=PIPE,shell=True)p2=Popen("pythonTestInput.py",stdin=p1.stdout,stdout=PIPE,shell=True)printp2.communicate()[0]#otherway#printp2.stdout.readlines()

输出:

inputstringis:hello,world!#!/usr/bin/pythonimportosfromsubprocessimportPopen,PIPE,callretcode=os.system("pythonhello.py")print("retcodeis:%s"%retcode);fouput=os.popen("pythonhello.py")result=fouput.readlines()print("resultis:%s"%result);finput=os.popen("pythonTestInput.py","w")finput.write("howareyou\n")f=call("pythonhello.py",shell=True)printfp1=Popen("pythonhello.py",stdin=None,stdout=PIPE,shell=True)p2=Popen("pythonTestInput.py",stdin=p1.stdout,stdout=PIPE,shell=True)printp2.communicate()[0]#otherway#printp2.stdout.readlines()
本文链接地址:https://www.jiuchutong.com/zhishi/303774.html 转载请保留说明!

上一篇:Homoiconicity

下一篇:PHPCMS漏洞之文件poster.php(phpweb漏洞)

  • 真我q3s怎么设置抬起亮屏(真我q3s怎么设置返回键)

    真我q3s怎么设置抬起亮屏(真我q3s怎么设置返回键)

  • 学习强国怎么加入组织

    学习强国怎么加入组织

  • 小米怎么给小爱同学换个名称唤醒(小米怎么小爱怎么保持唤醒)

    小米怎么给小爱同学换个名称唤醒(小米怎么小爱怎么保持唤醒)

  • word艺术字环绕方式怎么设置(word艺术字环绕方式紧密型)

    word艺术字环绕方式怎么设置(word艺术字环绕方式紧密型)

  • 裸金属服务器 是什么(裸金属服务器和云服务器的区别)

    裸金属服务器 是什么(裸金属服务器和云服务器的区别)

  • 为什么剪映出来的视频不清晰(为什么剪映出来的相片变小了)

    为什么剪映出来的视频不清晰(为什么剪映出来的相片变小了)

  • 分屏看钉钉直播会影响观看时长吗

    分屏看钉钉直播会影响观看时长吗

  • 没有路由器只有光猫可以上网吗(没有路由器只有光猫可以改密码吗)

    没有路由器只有光猫可以上网吗(没有路由器只有光猫可以改密码吗)

  • 登录不了以前的抖音号(登录不了以前的微信)

    登录不了以前的抖音号(登录不了以前的微信)

  • vivo手机视频没有声音是怎么回事(vivo手机视频没有声音如何恢复正常)

    vivo手机视频没有声音是怎么回事(vivo手机视频没有声音如何恢复正常)

  • 华为nova7耳机接口在哪(华为nova7耳机接口能随意)

    华为nova7耳机接口在哪(华为nova7耳机接口能随意)

  • koda是什么牌子的音响(robam是什么牌子)

    koda是什么牌子的音响(robam是什么牌子)

  • 电脑没装系统开机是什么界面(电脑没装系统开机慢)

    电脑没装系统开机是什么界面(电脑没装系统开机慢)

  • 华为手机怎么设置输入法皮肤(华为手机怎么设置陌生号码打不进来)

    华为手机怎么设置输入法皮肤(华为手机怎么设置陌生号码打不进来)

  • 苹果官方版和公开版有什么区别(苹果官方版和公开版哪个好)

    苹果官方版和公开版有什么区别(苹果官方版和公开版哪个好)

  • 手机本地音乐在哪里(手机本地音乐在哪里找到)

    手机本地音乐在哪里(手机本地音乐在哪里找到)

  • 华为手机都有两个系统吗(华为手机都有两个空间吗)

    华为手机都有两个系统吗(华为手机都有两个空间吗)

  • 手机流量gb是啥意思(手机流量gb是多少)

    手机流量gb是啥意思(手机流量gb是多少)

  • 华为手机在哪插耳机(华为手机在哪插手机卡)

    华为手机在哪插耳机(华为手机在哪插手机卡)

  • 手机的歌怎么传到mp3(手机的歌怎么传到另一个手机)

    手机的歌怎么传到mp3(手机的歌怎么传到另一个手机)

  • vivoy3处理器是多少(vivoy3处理器是啥)

    vivoy3处理器是多少(vivoy3处理器是啥)

  • 苹果充值记录怎么删除(苹果充值记录怎么永久删除消费记录)

    苹果充值记录怎么删除(苹果充值记录怎么永久删除消费记录)

  • msiexec.exe是什么进程介绍

    msiexec.exe是什么进程介绍

  • 账本印花税的计税依据
  • 贷款损失税前扣除
  • 向银行借入短期借款偿还前欠货款
  • 外贸企业指的是什么
  • 环评费用怎么入账
  • 开发票高校是企业还是非企业单位
  • 农产品计算抵扣的税务政策
  • 建筑 分包
  • 房地产中的存货是什么意思
  • 上一年度多计提折旧怎么调整
  • 代销手续费如何开票
  • 商业会计主要做什么帐
  • 自产货物用于在建工程要交增值税吗
  • 3%的增值税专用发票可以退税吗可以抵扣吗
  • 地税能不能查到个人的贷款行为?
  • 出售无形资产是收入吗
  • 转让专利技术使用权属于什么收入
  • 按次申报是什么意思
  • 公司费用种类
  • 对公账户转法人私人账户用途写什么
  • 什么情况需要对房屋外观拍照
  • 进项税额转出多转了怎么办
  • 年终奖扣税标准计算器
  • 企业支出的资产包括哪些
  • 科目余额表借贷方余额不一致
  • 公司转账不开票备注服务费怎么入账
  • 税务机构
  • 企业所得税以前年度亏损怎么弥补
  • 外观专利的价值
  • switcher.exe - switcher是什么进程
  • 笔记本电脑盖上盖子就关机了吗
  • 偿还不了债务会怎么样
  • 现金支票提取备用金会计处理
  • 股权转让有溢价分录怎么写
  • 一二级公路增值税税率
  • vuejs性能
  • php连接
  • 知识图谱ui
  • bert的原理
  • 印花税每个月都报吗
  • 公司注销实收资本退回需要交税吗
  • 实收资本退回给股东需要交印花税吗
  • 图形验证码api
  • dubbo 实现原理
  • mongodb基础
  • SQL Server 2016 TempDb里的显著提升
  • python中except用法
  • 购买种子能抵扣进项吗
  • 现金账怎么登记
  • 跨年租金如何确认收入
  • 企业哪些账户可以取现金
  • 进口退货退税
  • 代扣代缴增值税要交附加税吗
  • 不具有销售性质的工作
  • 利润分配未分配利润期末有余额吗
  • 销售收入怎么入账
  • 销售退回怎么办
  • 以土地使用权投资入股是否缴纳增值税
  • 增值税税率调整后,合同价应该调整吗
  • 租赁业发票
  • 递延所得税资产是什么意思
  • 暂估出口收入如何计算
  • 工程款结清确认书模板
  • dell bios密码忘记
  • 苹果Mac系统怎么切换输入法
  • win10一直弹werfault,程序也打不开
  • mousemenu是什么文件夹
  • win8如何更改用户名字?
  • javascript中的函数
  • node connect
  • 让动画不再僵硬的软件
  • 游戏开发unity3d
  • Node.js中的核心模块包括哪些内容?
  • jquery结合html实现中英文页面切换
  • jQuery实现表格与ckeckbox的全选与单选功能
  • js获取上传文件的大小
  • js实现类
  • 慧算账财务公司简介
  • 手表关税多少
  • 契税个税怎么说
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设