作者tonykai (阿钙钙~)
看板Python
标题[问题] 有关subprocess的问题
时间Sun Feb 23 15:38:48 2014
小弟我最近再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到底是甚麽吗?
看了也不懂在做甚麽...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.25.118.134
1F:→ jcfrank:这行的意思是:起一个shell subprocess,执行instruction 02/23 22:42
2F:→ jcfrank:的内容,然後把结果的stdout assign给file. 02/23 22:44
3F:→ jcfrank:给它.PIPE的话,可以分别在Popen的stdin, stdout, stderr 02/23 22:46
4F:→ jcfrank:这三个attributes拿到它的input, output, error. 02/23 22:47
5F:→ jcfrank:後面假设file多行可能是该instruction的output不止一行. 02/23 22:49
6F:→ tonykai:所以他会输出一个output file然後里面是我的instruction罗 02/24 00:30
7F:→ tonykai:? 所以Popen内只是设定attribute然後.PIPE拿到的output应 02/24 00:34
8F:→ tonykai:该会是怎样还是不太清楚欸 02/24 00:35
9F:→ jcfrank:你误会这里的file了。光看这行code,file只是变数名称。 02/24 09:25
10F:→ jcfrank:里面装instruction执行完的stdout,应该是一个多行的str。 02/24 09:27