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

  • 电子商务税收的特征有哪些?
  • 普票和增值税发票的区别
  • 要交多少增值税
  • 一般纳税人附加税优惠政策2023
  • 货物退回是什么意思
  • 一般纳税人开普票和专票有什么区别
  • 商品进销差价属于流动资产吗
  • 出差怎么订机票
  • 房地产项目管理三大核心
  • 公司进项票不够怎么回事
  • 简易征收红冲报税方式是什么?
  • 企业在什么情况下做薪酬诊断
  • 餐饮业开专票几个点
  • 实际销售金额是开票金额吗
  • 个人所得税中薪资与实际工资有什么差别
  • 已交税金是什么科目
  • 小规模纳税人的起征点是多少
  • 电脑主板上的电池没电了会怎么样
  • 一般纳税人存货入账价值
  • filecopyutils.copy上传文件
  • 公司与个人的往来款怎么处理
  • PHP If Else(elsefi) 语句
  • sisusbrg.exe - sisusbrg是什么进程 有什么用
  • win11dev预览版可以升级正式版吗
  • 路由器怎么设置2.4g网络
  • 时序模型算法
  • 布鲁克斯的故事
  • 销售方怎么申请红字信息表
  • 补缴税款怎么补
  • 增值税账务处理 一般纳税人
  • php文件上传用什么请求方法
  • idea如何运行ssm项目spring
  • html该怎么学
  • 新准则与旧准则比较有哪些新变化
  • 研发支出属于哪个表
  • php冒泡法排序
  • 可视化思考
  • 广告模板网站
  • 网络销售平台优势和劣势
  • dedecms配置
  • 劳务费发票可以抵扣吗?
  • 什么指的是土地面积
  • 企业招待客户收入怎么算
  • 进度款开票是开实收金额吗
  • 公司注销时发现有预付款
  • 企业账户里的政府账户
  • 农业合作社账务都有什么科目
  • 固定资产报废的账务处理
  • 刻章需要准备的资料
  • 存货账面价值的确定
  • 员工意外险的费用怎么算
  • 保险的理解
  • 租赁费计提部分算入印花税吗
  • 小规模纳税人购进税控设备如何抵扣
  • 公示信息有误如何修改
  • 审计真实性认定
  • 记账凭证负数怎么填写样板
  • sql语句中单引号怎么打
  • sql server?
  • 音频文件恢复
  • win7如何升级win11系统
  • win8如何关闭开始屏幕
  • Remind_XP.exe - Remind_XP是什么进程 有什么用
  • linux中命令行
  • debian怎么配置ip
  • opengl绘图
  • Linux系统安装字体
  • JavaScript中的this指向
  • jquery 右键菜单
  • CameraViewControl 摄像机 绕 物体
  • 个税申报系统如何增加新单位
  • 民办非企业单位登记管理暂行条例
  • 纳税人虚假纳税申报
  • 买楼送地下室划算吗
  • 开票风险预警机制蓝色预警怎么办
  • 青岛税务局局长是什么级别?
  • 地税局属于省直单位吗
  • 小区配电房移交供电局的依据
  • 矿山耕地占用税计入什么科目
  • 国税局对出口退税的要求
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设