python 交互式shell,python脚本和shell脚本

  python 交互式shell,python脚本和shell脚本

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

  hello.py代码如下:

  #!/usr/bin/python

  打印"你好,世界!TestInput.py代码如下:

  #!/usr/bin/python

  str=raw_input()

  打印( input string is :% s % str 1.os.system(cmd)

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

  retcode=OS。系统(python你好。py’)

  print( retcode是:% s % retcode );输出:

  你好,世界!

  2.os.popen(cmd)邮编:0

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

  返回程序输出流,用富普特变量连接到输出流

  fou put=OS。popen(‘python你好。py’)

  result=fouput.readlines()

  打印( result is :% s % result );输出:

  结果是:[你好,世界!\n]返回输入流,用最终产量变量连接到输出流

  fin put=OS。popen( python testinput。py , w )

  finput.write(howareyou\n )输出:

  输入字符串:你好3.利用subprocess模块

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

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

  打印函数输出:

  你好,世界!

  0

  子流程。波本()利用打开进程文件指针可以是实现双向流的通信,可以将一个程序的输出流发送到另外一个程序的输入流。

  波本()是打开进程文件指针类的构造函数,交流()返回元组(标准输出数据,标准错误数据).

  p1=Popen(pythonhello.py ,stdin=None,stdout=PIPE,shell=True)

  p2=Popen(pythonTestInput.py ,stdin=p1.stdout,stdout=PIPE,shell=True)

  printp2.communicate()[0]

  #其他方式

  #printp2.stdout.readlines()输出:

  输入字符串:你好你好,世界!整合代码如下:

  #!/usr/bin/python

  进口货

  fromsubprocessimportPopen,管道,调用

  retcode=OS。系统(python你好。py’)

  print( retcode是:% s % retcode );

  fou put=OS。popen(‘python你好。py’)

  result=fouput.readlines()

  打印( result is :% s % result );

  fin put=OS。popen( python testinput。py , w )

  finput.write(howareyou\n )

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

  打印函数

  p1=Popen(pythonhello.py ,stdin=None,stdout=PIPE,shell=True)

  p2=Popen(pythonTestInput.py ,stdin=p1.stdout,stdout=PIPE,shell=True)

  printp2.communicate()[0]

  #其他方式

  #printp2.stdout.readlines()

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: