[问题] 有关subprocess的问题

楼主: tonykai (阿钙钙~)   2014-02-23 15:38:48
小弟我最近再trace一份code
在很多个函式内看到
file=subprocess.Popen(instruction, shell=True,stdout=subprocess.PIPE).stdout
有查了subprocess内很多函式的用法
但组起来不管怎么看都感觉不通顺
不是很懂到底是什么结果
我的instruction是一行unix shell script
不过在file那行之后做循环
for line in file
依照小弟的理解
那是一行行读取刚刚file内的值吧?
不过我input的是一行的unix shell script
为什么要一行行读取?
file那行到底做了什么事@@?
还有可以在问一下PIPE到底是什么吗?
看了也不懂在做什么...
作者: jcfrank   2014-02-23 22:42:00
这行的意思是:起一个shell subprocess,执行instruction的内容,然后把结果的stdout assign给file.给它.PIPE的话,可以分别在Popen的stdin, stdout, stderr这三个attributes拿到它的input, output, error.后面假设file多行可能是该instruction的output不止一行.
楼主: tonykai (阿钙钙~)   2014-02-24 00:30:00
所以他会输出一个output file然后里面是我的instruction囉? 所以Popen内只是设定attribute然后.PIPE拿到的output应该会是怎样还是不太清楚欸
作者: jcfrank   2014-02-24 09:25:00
你误会这里的file了。光看这行code,file只是变量名称。里面装instruction执行完的stdout,应该是一个多行的str。

Links booklink

Contact Us: admin [ a t ] ucptt.com