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

  • 退税是什么科目的
  • 所得税可以弥补几年
  • 互助资金协会科目
  • 报销人和经办人怎么区分
  • 公司购买煤炭的会计分录
  • 实收资本账
  • 科目汇总表的登记方法
  • 红字冲回是负数吗
  • 平均分摊法计算公式
  • 出售生产线计入哪里
  • 公司注销固定资产交什么税
  • 计提所得税是在结转12月损益之前还是之后
  • 不动产发票丢了怎么办理房产证
  • 金税盘使用说明
  • 经营性租赁怎么做账
  • 手撕票可以报销么
  • 装修预付款怎么做账
  • 非独立核算分公司企业所得税
  • 一般纳税人和小规模纳税人的区别
  • 本年利润和未分配利润怎么结转
  • 华为手机网络拒绝接入怎么解决
  • 增值税纳税人申报表怎么填写
  • 开发产品转作经营性资产
  • 环保税与排污费的联系
  • u盘格式化技巧
  • 金融企业营业税税率是多少
  • 成本法的优点是计算较为简便,缺点是
  • 出现质量问题赔偿标准
  • vue手机端
  • 会计财务报表的编制步骤
  • eslint不起作用
  • 模式识别与图像处理能做什么
  • react 入门
  • c语言中函数的实参和形参
  • python 嵌入
  • 增值税申报表中销售额
  • 银行承兑汇票记入会计科目
  • 收到进项税发票
  • 专用发票必须按照销售方开户行及账号付款吗
  • 经营性现金流量为什么要加上折旧
  • 税务登记是需要原件还是复印件
  • 一般纳税人购入不动产增值税税率
  • SQL2005Express中导入ACCESS数据库的两种方法
  • MySQL服务器系统支持哪些存储引擎
  • 在建工程的土地可以查封吗
  • 不交社保的职业
  • 工程报废及毁损处理办法
  • 增值税一般纳税人资格登记表
  • 收到政府补助怎么感谢
  • 小规模纳税人开专票税率是多少?
  • 生产企业支付的房租怎么入账
  • 控制企业的5种方式
  • 员工报销的话费要缴纳个税吗?
  • 结转库存商品需要附件吗
  • 个人取得的劳务报酬需要交增值税吗
  • 单位员工购买本地保险
  • 销售怎么写啊
  • ubuntu debain
  • win8.1鼠标没反应
  • dockers容器
  • win7手动装系统步骤
  • windows 查看图片
  • 微信付费使用是真的吗
  • windows7包含6个版本其中什么最强大支持的功能最多
  • mac文稿怎么查看字数
  • windows7里剪切小剪刀在哪里
  • win10电脑补丁 kb5000802
  • opengl es2
  • javascript自定义属性
  • eclipse cocos2dx Couldn't load cocos2dcpp from loader
  • javascript自动化
  • node.js利用cas实现单点登录
  • 安卓手机管家怎么关闭
  • 深圳如何打印个人参保证明
  • 四川省地方税务局2017年1号公告
  • 医保可以直接到税局买吗?
  • 江西省税务局公众号
  • 营业收入是含增值税的收入吗
  • 小规模纳税人租赁房屋税率
  • 耗电异常优化是什么意思微信
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设