python中count函数的编码_Python 实现word count 简单计算源代码中的字符数、词数、行数。...

本文介绍了如何使用Python的内置函数来统计文件的字符数、词数和行数。通过一个简单的代码示例展示了如何读取文件、处理空行,并根据命令行参数返回不同统计结果。此外,还提到了将Python脚本转换为可执行文件的方法。
摘要由CSDN通过智能技术生成

1.PSP

PSP2.1

PSP阶段

预估耗时

(分钟)

实际耗时

(分钟)

Planning

计划

20

30

· Estimate

· 估计这个任务需要多少时间

20

30

Development

开发

420

390

· Analysis

· 需求分析 (包括学习新技术)

60

60

· Design Spec

生成设计文档

40

30

· Design Review

· 设计复审 (和同事审核设计文档)

20

20

· Coding Standard

· 代码规范 (为目前的开发制定合适的规范)

10

10

· Design

· 具体设计

50

50

· Coding

· 具体编码

180

170

· Code Review

· 代码复审

40

40

· Test

· 测试(自我测试,修改代码,提交修改)

20

20

Reporting

报告

50

60

· Test Report

· 测试报告

20

30

· Size Measurement

· 计算工作量

10

10

· Postmortem & Process Improvement Plan

· 事后总结, 并提出过程改进计划

20

20

合计

490

480

二.具体编程实现以及测试

Python 是一个有条理的和强大的面向对象的程序设计语言,类似于Perl, Ruby, Scheme, Java.

利用python,我们能很轻松地完成迭代任务并提供split()等函数,所以用python来统计字符数,词汇量是一件很轻松的事情

先说一下解题思路吧,统计字符数、词量、行数无非就是要做一个遍历循环,一旦符合条件便进行+1。

具体代码如下:

importsysimportos

gpus= sys.argv[2]#gpus = [int(gpus.split(‘,‘))]

batch_size = sys.argv[1]

file_name=gpus

line_count=0

word_count=0

character_count=0

with open(file_name,‘r‘,encoding=‘utf-8‘) as f:for line inf:if line.strip()==‘‘:continueword=line.split()

line_count+=1word_count+=len(word)

character_count+=len(line)if batch_size==‘-c‘:print(‘%s,字符数:%d‘%(file_name,character_count))elif batch_size==‘-w‘:print(‘%s,单词数:%d‘%(file_name,word_count))elif batch_size==‘-l‘:print(‘%s,行数:%d‘%(file_name,line_count))elif batch_size == ‘-o‘:try:

f= open("result.txt", ‘w+‘)

f.write(‘%s: 字母数:%s

单词数:%s

行数:%s‘ %(file_name, character_count, word_count, line_count))exceptException as err:print(err)finally:

f.close()else:print("karma is bitch")

该程序代码十分简洁归功于python这门语言的强大

首先导入的两个包 一个是sys,主要用来传递参数用。另一个是os,用来输出结果到文件上。

sys从命令行读取命令,该命令是字符串的形式,共有两个参数一个是关于执行的操作参数,例如-w,-l等,一个是目标文件的名称,例如doupan.py:

20180924183323797539.png

获取目标文件的代码主要是:

with open(file_name,‘r‘,encoding=‘utf-8‘) as f:for line inf:if line.strip()==‘‘:continueword=line.split()

line_count+=1word_count+=len(word)

character_count+=len(line)

我们首先打开目标文件,再从目标文件中以行为单位读取。

如果这一行是空值的话就跳过,如果不是的话就进行相应的计数。这是一个必要的步骤不然行数会多算。

len()函数和split()函数都使统计变得十分简单。

最后我们根据从命令行读取的第一个参数判断要返回的形式,关键代码如下:

if batch_size==‘-c‘:print(‘%s,字符数:%d‘%(file_name,character_count))elif batch_size==‘-w‘:print(‘%s,单词数:%d‘%(file_name,word_count))elif batch_size==‘-l‘:print(‘%s,行数:%d‘%(file_name,line_count))elif batch_size == ‘-o‘:try:

f= open("result.txt", ‘w+‘)

f.write(‘%s: 字母数:%s

单词数:%s

行数:%s‘ %(file_name, character_count, word_count, line_count))exceptException as err:print(err)finally:

f.close()else:print("karma is bitch")

我们还需将py文件生成exe可执行文件 只需要在命令行如下操作:

pyinstaller -F wc.py

测试运行的效果图如下:

20180924183323918633.png

20180924183329594414.png

三.总结

该次作业属于比较简单的程序设计,但其实包含的步骤内容是作为软件工程的学生应该熟练掌握的,

熟悉一套完整的工作流程是我们今后在工作中,无比重要的。

从PSP表格到需求分析设计到编程总结让我们体验了一次比较完整的开发过程,受益匪浅,

此次作业还存在着明显的不足,不过自己会慢慢改进且反思的。

本篇博客参考了《python编程》Eric,Matthes书中相关内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值