位置: 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漏洞)

  • 微信卡包不见了怎么添加(微信卡包不见了怎么回事)

    微信卡包不见了怎么添加(微信卡包不见了怎么回事)

  • 小米10pro的屏幕刷新率是90hz吗(小米10pro的屏幕材质)

    小米10pro的屏幕刷新率是90hz吗(小米10pro的屏幕材质)

  • 探探需要花钱才能聊天吗(探探需要花钱才能直播吗)

    探探需要花钱才能聊天吗(探探需要花钱才能直播吗)

  • 小米耳机苹果能用吗(小米耳机苹果能开降噪吗)

    小米耳机苹果能用吗(小米耳机苹果能开降噪吗)

  • 荣耀30指纹解锁位置(荣耀30指纹解锁失灵了是怎么回事)

    荣耀30指纹解锁位置(荣耀30指纹解锁失灵了是怎么回事)

  • 无效视频是什么意思(视频播放显示无效)

    无效视频是什么意思(视频播放显示无效)

  • iphonexr快充用多少w的(iphonexr用快充多久充满)

    iphonexr快充用多少w的(iphonexr用快充多久充满)

  • 手机换屏后闪屏是什么原因(手机换屏后闪屏是正常现象吗)

    手机换屏后闪屏是什么原因(手机换屏后闪屏是正常现象吗)

  • 完整的计算机系统同时包括( )(完整的计算机系统)

    完整的计算机系统同时包括( )(完整的计算机系统)

  • 苹果itunes store是什么意思(itunes store is)

    苹果itunes store是什么意思(itunes store is)

  • 奔腾32位处理器32指什么(奔腾的32位处理器32位指什么)

    奔腾32位处理器32指什么(奔腾的32位处理器32位指什么)

  • 苹果8p手机信号时有时无(苹果8p手机信号弱怎么解决)

    苹果8p手机信号时有时无(苹果8p手机信号弱怎么解决)

  • 华为p20pro是什么系统手机(华为p20pro是什么处理器)

    华为p20pro是什么系统手机(华为p20pro是什么处理器)

  • 小米8原装充电器是几a的(小米8原装充电器型号)

    小米8原装充电器是几a的(小米8原装充电器型号)

  • 网易云音乐电台下载的歌在哪里(网易云音乐电台怎么上传)

    网易云音乐电台下载的歌在哪里(网易云音乐电台怎么上传)

  • 华为nova65g手机如何截屏(华为nova65g手机长度)

    华为nova65g手机如何截屏(华为nova65g手机长度)

  • 不是有效的win32程序是什么意思(不是有效的win32应用程序怎么办)

    不是有效的win32程序是什么意思(不是有效的win32应用程序怎么办)

  • 手机qq如何创群(手机qq怎么创群创群)

    手机qq如何创群(手机qq怎么创群创群)

  • 苹果怎么下载玩吧(苹果怎么下载玩具熊的午夜后公)

    苹果怎么下载玩吧(苹果怎么下载玩具熊的午夜后公)

  • 电话被拉黑了还能发消息吗(电话被拉黑了还能打通对方电话)

    电话被拉黑了还能发消息吗(电话被拉黑了还能打通对方电话)

  • 苹果x支持分屏功能吗(苹果x可不可以分屏)

    苹果x支持分屏功能吗(苹果x可不可以分屏)

  • 全角空格是英文状态还是中文状态(全角空格就是中文空格)

    全角空格是英文状态还是中文状态(全角空格就是中文空格)

  • 手机直播支架怎么安装(手机直播支架怎么安装两米1)

    手机直播支架怎么安装(手机直播支架怎么安装两米1)

  • 三星evo红卡与橙卡对比(三星evo橙色还是红色)

    三星evo红卡与橙卡对比(三星evo橙色还是红色)

  • 怎样改ppt上的文字(怎样改ppt上的文字内容)

    怎样改ppt上的文字(怎样改ppt上的文字内容)

  • Echarts图表自适应?你可以这样做(echarts图大小设置)

    Echarts图表自适应?你可以这样做(echarts图大小设置)

  • 关于英语的25个冷知识(关于英语的25个单词)

    关于英语的25个冷知识(关于英语的25个单词)

  • 什么是企业的应纳税额
  • 城市配套费的用途
  • 新个税计算公式怎么输入excel
  • 初级职称经济法基础重点
  • 印花税技术合同计税依据
  • 房产税是按不含税租金收入
  • 津贴和补贴计入加班费吗
  • 专票多少钱
  • 处置投资性房地产的损益怎么算
  • 外企缴纳社保
  • 增值税普通发票怎么开
  • 房租费可以摊销吗
  • 工厂出租厂房税率
  • 7.1发票没有税号怎么开
  • 无票收入如何做会计凭证
  • 人防设施建设费
  • 季初从业人数和季末从业人数怎么填
  • 土地使用权的租赁与出租的区别
  • 在会计上其他业务是什么
  • 是否跨期
  • 小微企业文化事业建设费是否可以享受减免
  • 总公司和分公司的合作协议
  • 怎么做汇算清缴报表
  • 职工薪酬核算的内容
  • 房产税有哪些种类
  • macOS Catalina10.15.2值得升级吗 macOS Catalina10.15.2更新了什么
  • php如何使用session
  • 出差的误餐费会计分录
  • 进程核心栈
  • 冲办公费会计分录
  • PHP:stream_socket_pair()的用法_Stream函数
  • 购买销售商品
  • 收到退回的保证金
  • 微信用不升级
  • 除了正式发票还有啥
  • php和mysql的联合使用
  • ftp port命令
  • geth命令行
  • 网上学电脑
  • discuz关闭电脑版
  • 关于差额征税的账务处理
  • 材料暂估入库如何进行账务处理
  • 税收收入退还书有时间限制吗
  • 公司新增注册资本是认缴的吗
  • 预提财务费用
  • 织梦设置的关键词看不到
  • 个体工商户经营所得税税率表2023年
  • 税前扣除项目主要包括
  • 营业总收入包含什么
  • 个体户是怎么交公积金的
  • 工会的会费收入是什么
  • 注销时,其他应付款有余额,怎么冲减
  • 长期待摊费用未摊销完一次性处理怎么走
  • 合同资产根据什么来编报表
  • 分期收款提供劳务 是什么
  • 背书转让的电子汇票怎么查询
  • 企业哪些项目可以立项
  • 从会计角度看会计刺客
  • 固定资产清理明细账采用什么账簿
  • mysql的自动增长怎么表示的?
  • mysql数据库主从数据不一致
  • sqlserver msdb
  • win7开关机时间设置
  • xp查看系统
  • 电脑如何进入bios选择u盘启动
  • ebr.ahrcu
  • win7系统不能用了?
  • win7 32位中文语言包
  • win7未能启动怎么办
  • Win10如何还原输入法
  • javascript Ext JS 状态默认存储时间
  • c#多线程应用
  • unity怎么创建摄像机
  • qt搭建opencv
  • jquery2
  • 用户允许控制
  • ffmpeg webui 0.9.6
  • ecmascript新特性
  • jabsorb笔记_几个小例子第1/2页
  • 武汉市江汉区财政局这个单位的公务员待遇怎么样?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设