通过使用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.py
hell ljf kldj fkl ajs kl df jas klf
sdf j lasd fjl asf
ja sl; dfka sl; fdj
jd flk asj fl;a
j;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],由于第一个参数为该脚本本身,所有要进行迭代的文件的键值为1
for i in f:
print i.strip()                  #对文件进行遍历
./cs.py 文件名称
执行结果:
[root@yetcomm-v2 doc]# ./8.py one
hell ljf kldj fkl ajs kl df jas klf
sdf j lasd fjl asf
ja sl; dfka sl; fdj
jd flk asj fl;a
j;a dfj kla;

 

3.通过标准输入对文件进行统计

 

#!/opt/data/ipy/bin/python
#!-*- coding:utf8 -*-
import sys
data=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.py
lines:5 words:26 chars:104

4.通过传递参数对文件进行统计

 

#!/opt/data/ipy/bin/python
#!-*- coding:utf8 -*-
import sys
f=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 one
words:26 lines:4 chars:103

 

5.通过判断是标准输入还是传递参数进行对文件统计

 

#!/opt/data/ipy/bin/python
#!-*- conding:utf8 -*-
import sys
if 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.py
lines:4 words:26 chars:103
[root@yetcomm-v2 doc]# ./6.py  one
lines:4 words:26 chars:103