1:标准输入:

    python中的sys模块有标准输入,标准输出,以及标准错误输出的方法。

#!/usr/bin/env python#coding:utf-8   #添加中文输出import sysfd = sys.stdin  #程序等待输入data = fd.read()  #把输入的值赋给变量sys.stdout.write(data + "\n") #借助于write方法把data的值传送给标准输出。print data,#print data  #也可以借助于print函数来输出,print函数的输出默认的结果时多带一个换行符的,若想去掉换行符可以在左后面加一个>逗号

输出结果如下:

[root@lianxi1 Day01]# python Day01.py werrewwer       #标准输出的结果rewwer        #print的输出rew

2:从标准输入统计输入的行数:

#!/usr/bin/env python#coding:utf-8#统计行数,实现wc -l的功能import sysdef lineCount(fd): #定义函数第二个单词首字母大写。类每一个单词的首字母大写    n = 0    for i in fd: #fd是文件对象(可以直接遍历),可以换为fd.readlines(),返回的是一个列表       n += 1    return nfd = sys.stdinprint lineCount(fd)

输出结果如下:

[root@lianxi1 Day01]# python Day02.py dfssdf                    #输入结束后需要按ctrl-D结束。2[root@lianxi1 Day01]#

3.用python编程实现wc的功能。

    需求:1.要实现wc的统计单词,统计字符,统计行数的功能。

        2.若文件不存在则需要给出提示。

#!/usr/bin/env python#coding:utf-8#导入模块import sys, os#!/usr/bin/env python#coding:utf-8#导入模块import sys, osif len(sys.argv) > 1 :#可以统计多个文件    for i in sys.argv[1:]:        #判断文件是否存在        if not os.path.exists(i):            print "%s is not exists" % i            sys.exit()        fd = open(i)        data = fd.read()        lens = data.count('\n')        words = len(data.split())        chars = len(data)        print lens, words, charselse:    data = sys.stdin.read()    lens = data.count('\n')    words = len(data.split())    chars = len(data)    print lens, words, chars

结果如下:

[root@lianxi1 python100]# python lianxi1.py  /etc/hosts  /etc/passwd2 10 15831 52 1457[root@lianxi1 python100]#

这个wc的功能不是很完善,只是做了一些统计而已。

4.标准输出中的缓存。

#!/usr/bin/env python#coding:utf-8import sysimport timefor i in range(10):    sys.stdout.write("str:%d\n" %i)#一秒出一个    time.sleep(1)    #sys.stdout.flush() #刷新缓存,执行的加-u选项效果一样

输出结果:

[root@lianxi1 Day01]# python Day05.py  str:0str:1str:2str:3str:4str:5str:6str:7str:8str:9[root@lianxi1 Day01]# python Day05.py  | cat -str:0str:1str:2str:3str:4str:5str:6str:7str:8str:9[root@lianxi1 Day01]# python -u Day05.py  | cat -#‘-’是对输出流用cat来处理str:0str:1str:2str:3str:4str:5str:6str:7str:8str:9[root@lianxi1 Day01]# 注意官产三种方法的效果