Python实战(1)模拟wc命令部分功能
模拟wc命令统计行和字符的功能。# vim wc.py
[*]#!/usr/bin/env python
[*]'''
[*] Author:diege
[*] Email:diege@foxmail.com
[*] Date:2012-03-04
[*] Useage:wc.py filename
[*]'''
[*]#import sys
[*]#filename=raw_input('Enter FileName:')
[*]#filename=sys.argv
[*]from sys import argv as getargv
[*]filename=getargv
[*]def CountLines(filename):
[*] countlines=''
[*] countlines=len(open(filename).readlines())
[*] return countlines
[*]def ConutChars(filename):
[*] conutchars=''
[*] conutchars=len(open(filename).readlines())
[*] return conutchars
[*]def GetFileInfo(filename):
[*] countlines=CountLines(filename)
[*] conutchars=ConutChars(filename)
[*] print 'file:%s,line:%s,chars:%s' %(filename,countlines,conutchars)
[*]if __name__=='__main__':
[*] '''
[*] #debug
[*] print filename
[*] countlines=len(open(filename).readlines())
[*] conutchars=len(open(filename).readlines())
[*] print 'file:%s,line:%s,chars:%s' %(filename,countlines,conutchars)
[*] '''
[*] GetFileInfo(filename)
总结:
犯了两个错误
1、open(filename) 传入的是变量filename 不要写成open('filename'),不然传入的就是字符串不是变量了
2、关于函数内,本地变量的未定义的问题。
忘记在函数内定义本地变量countlines和conutchars,结果报错变量没有定义。
[*]# python wc.py module.py
[*]Traceback (most recent call last):
[*]File "wc.py", line 25, in <module>
[*] GetFileInfo(filename)
[*]File "wc.py", line 15, in GetFileInfo
[*] conutchars=ConutChars(filename)
[*]File "wc.py", line 12, in ConutChars
[*] return countlines
[*]NameError: global name 'countlines' is not defined
页:
[1]