通过使用Python OS模块对文件进行操作。
1.通过标准输入进行对文件遍历
#!/opt/data/ipy/bin/python //python执行文件目录#!-*- coding:utf8 -*- //设置字符集import sys //加载sys模块儿f=sys.stdin.read() //读取标准输入的文件print f.strip() //迭代出来的文件去除空格cat 要进行迭代地文件 | ./stdin.py //对标准输入的文件,进行遍历执行结果:[root@yetcomm-v2 doc]# cat one | ./1.pyhell ljf kldj fkl ajs kl df jas klfsdf j lasd fjl asfja sl; dfka sl; fdjjd flk asj fl;aj;a dfj kla;
2.使用sys.argv方法对文件进遍历
#!/opt/data/ipy/bin/python#!-*- coding:utf8 -*-from sys imprt argv #加载sys模块,import功能相同f=open(argv[1]) #argv[1],由于第一个参数为该脚本本身,所有要进行迭代的文件的键值为1for i in f:print i.strip() #对文件进行遍历./cs.py 文件名称执行结果:[root@yetcomm-v2 doc]# ./8.py onehell ljf kldj fkl ajs kl df jas klfsdf j lasd fjl asfja sl; dfka sl; fdjjd flk asj fl;aj;a dfj kla;
3.通过标准输入对文件进行统计
#!/opt/data/ipy/bin/python#!-*- coding:utf8 -*-import sysdata=sys.stdin.read()lines=data.count('\') #统计总行数words=len(data.split()) #统计单词数量,split() 将以空格为格式,将字符串转换成列表,然后进行统计chars=len(data) #统计字母数量print "lines:%(lines)d words:%(words)d chars:(chars)d" % locals() #locals() 全局变量cat 文件 | ./tj.py执行结果:[root@yetcomm-v2 doc]# cat one |./3.pylines:5 words:26 chars:104
4.通过传递参数对文件进行统计
#!/opt/data/ipy/bin/python#!-*- coding:utf8 -*-import sysf=open(sys.argv[1])data=f.read()init_data=data.strip()lines=init_data.count('\n')words=len(init_data.split())chars=len(init_data)print "words:%(words)s lines:%(lines)s chars:%(chars)s" % locals()执行结果:[root@yetcomm-v2 doc]# ./5.py onewords:26 lines:4 chars:103
5.通过判断是标准输入还是传递参数进行对文件统计
#!/opt/data/ipy/bin/python#!-*- conding:utf8 -*-import sysif len(sys.argv)>1: #当通过传递参数形式时,执行下面代码f=open(sys.argv[1])data=f.read()init_data=data.strip()else: #否则从标准输入进行处理data=sys.stdin.read()init_data=data.strip()lines=init_data.count('\n')words=len(init_data.split())chars=len(init_data)print "lines:%(lines)s words:%(words)s chars:%(chars)s" % locals()执行结果:[root@yetcomm-v2 doc]# cat one | ./6.pylines:4 words:26 chars:103[root@yetcomm-v2 doc]# ./6.py onelines:4 words:26 chars:103