Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏

1.11. Input/Output 输出/输出

1.11.1. 标准输入/输出

1.11.1.1. Standard Input 标准输入

sys.stdin.readline().strip()
			

1.11.1.2. Standard Output 标准输出

sys.stdout.write("输出的字串")
			

1.11.2. Pipe

1.11.2.1. stdin

				
#!/usr/bin/python
#filename:demo.py

import sys

for line in
sys.stdin:
print line,

#ls -lh | python demo.py
		
			

1.11.2.2. forkpty

		
#!/usr/bin/env python

import os
import sys

pid, fd = os.forkpty()

if pid == 0:
	# child
	os.execlp("ssh","ssh","hostname","uname")
else:
	# parent
	print os.read(fd, 1000)
	os.write(fd,"password\n")

c = os.read(fd,1)
while c:
	c = os.read(fd, 1)
	sys.stdout.write(c)		
		
			

1.11.2.3. Popen

		
#!/usr/bin/python

from subprocess import *
p = Popen(["cat","-n"], bufsize=1024,stdin=PIPE,stdout=PIPE, close_fds=True)

(fin,fout) = (p.stdin, p.stdout)
for i in range(10):
	fin.write("line" + str(i))
	fin.write('\n')
	fin.flush()

print fout.readline(),		
		
			

1.11.3. socketpair

socketpair 实现双向管道