Python实战(1)模拟wc命令部分功

发布时间:2019-08-27 08:02:16编辑:auto阅读(1765)

    模拟wc命令统计行和字符的功能。

    # vim wc.py

    1. #!/usr/bin/env python 
    2. ''' 
    3.         Author:diege 
    4.         Email:diege@foxmail.com 
    5.         Date:2012-03-04 
    6.         Useage:wc.py filename 
    7. ''' 
    8. #import sys 
    9. #filename=raw_input('Enter FileName:') 
    10. #filename=sys.argv[1] 
    11. from sys import argv as getargv 
    12. filename=getargv[1] 
    13. def CountLines(filename): 
    14.         countlines='' 
    15.         countlines=len(open(filename).readlines()) 
    16.         return countlines 
    17. def ConutChars(filename): 
    18.         conutchars='' 
    19.         conutchars=len(open(filename).readlines()) 
    20.         return conutchars 
    21. def GetFileInfo(filename): 
    22.         countlines=CountLines(filename) 
    23.         conutchars=ConutChars(filename) 
    24.         print 'file:%s,line:%s,chars:%s' %(filename,countlines,conutchars) 
    25. if __name__=='__main__': 
    26.         ''' 
    27.         #debug 
    28.         print filename 
    29.         countlines=len(open(filename).readlines()) 
    30.         conutchars=len(open(filename).readlines()) 
    31.         print 'file:%s,line:%s,chars:%s' %(filename,countlines,conutchars) 
    32.         ''' 
    33.         GetFileInfo(filename) 

    总结:

    犯了两个错误

    1、open(filename) 传入的是变量filename 不要写成open('filename'),不然传入的就是字符串不是变量了

    2、关于函数内,本地变量的未定义的问题。

    忘记在函数内定义本地变量countlines和conutchars,结果报错变量没有定义。

     

    1. # python wc.py module.py 
    2. Traceback (most recent call last): 
    3.   File "wc.py", line 25, in <module> 
    4.     GetFileInfo(filename) 
    5.   File "wc.py", line 15, in GetFileInfo 
    6.     conutchars=ConutChars(filename) 
    7.   File "wc.py", line 12, in ConutChars 
    8.     return countlines 
    9. NameError: global name 'countlines' is not defined 

     

关键字