.第二次作业(Python)

Gitee代码链接https://gitee.com/dsjyun/WordCount/tree/master

一, 功能需求

   wc.exe -c file.c //返回文件 file.c 的字符数

   wc.exe -w file.c //返回文件 file.c 的单词总数

  wc.exe -l file.c //返回文件 file.c 的总行数

  wc.exe -o outputFile.txt file.c //将结果输出到指定文件outputFile.txt

二,解题思路:

(1)这次作业并不难,所以我选用了正在自学的Python来实现WordCount。

(2)运用正则表达式提取.c文件中所有的字符;

(3)以空格为分隔符号提取.c文件中所有的单词数;

(4)运用Python中ReadLines方法提取.c文件中所有的行数。

三,主要代码

 1.统计字符数

if dir_path.find("-c")!=-1:

    txt = dir_path.split(" ")[-1].split(".")[0]
    z =".txt"
    path = os.getcwd()+"\\"+txt+".c"
    w = open(path,"a+")                 //打开用户需要解析的.c文件
    z = w.read()
    r = re.compile(r'(.|\n)*')              //正则表达式规则,用来统计字符个数
    w.close()
    path_new = os.getcwd()+"\\"+"result.txt"
    result = open(path_new,"a+")
    result.write(txt+".c"+","+"字符数:"+str(len(r.search(z).group())))
    result.close()

2.统计行数;

if dir_path.find("-w")!=-1:
    txt = dir_path.split(" ")[-1].split(".")[0]
    z =".txt"
    path = os.getcwd()+"\\"+txt+".c"
    w = open(path,"a+")
    z = w.read()
    print len(z.split(" "))
    w.close()
    path_new = os.getcwd()+"\\"+"result.txt"
    result = open(path_new,"a+")
    result.write(txt+".c"+","+"单词数:"+str(len(z.split(" "))))
    result.close()

3.统计行数;

if dir_path.find("-l")!= -1:
    txt = dir_path.split(" ")[-1].split(".")[0]
    z =".txt"
    path = os.getcwd()+"\\"+txt+".c"
    jii = open(path,'rU')
    count = len(jii.readlines())
    path_new = os.getcwd()+"\\"+"result.txt"
    jii.close()
    result = open(path_new,"a+")
    result.write(txt+".c"+","+"行数:"+str(count))
    result.close()
    print count

四,功能测试

五,总结

这次作业很有意义,首先作业严格贴合我们学习的内容,使我们对理论知识的实践;并且老师也要求我们自己编码实现WordCount,也可以锻炼我们的编程能力。

 

猜你喜欢

转载自www.cnblogs.com/dsjbo/p/9721417.html