一个取代shell wc -l 命令的python小脚本

1.通过python下optparse模块下OptionParser类是新对文件的统计

#!/opt/data/ipy/bin/python
#!-*- coding:utf8 -*-
import sys                              #加载sys模块
from optparse import OptionParser       #加载optparse模块
parser = OptionParser(usage="usage: %prog [options] [file1 file2 ...]")                            #实例化对象
parser.add_option("-c", "--char",
dest="characters",
action="store_true",
default=False,
help="Only count characters")
parser.add_option("-w", "--words",
dest="words",
action="store_true",
default=False,
help="Only count words")
parser.add_option("-l", "--lines",
dest="lines",
action="store_true",
default=False,
help="Only count lines")
(options, args) = parser.parse_args()
if not (options.characters or options.words or options.lines):
options.characters, options.words, options.lines = True, True, True
def get_count(init_data):
words=len(init_data.split())
lines=init_data.count("\n")
chars=len(init_data)
return (chars,words,lines)
def print_wc(chars,words,lines,fn):
if options.characters:
print chars,
if options.words:
print words,
if options.lines:
print lines,
print fn
if args:
t_lines,t_words,t_chars = 0,0,0
for fn in args:
f=open(fn)
data=f.read()
init_data=data.strip()
chars,words,lines = get_count(init_data)
t_lines+=lines
t_words+=words
t_chars+=chars
print_wc(chars,words,lines,fn)
print t_chars,t_words,t_lines,"total"
else:
fn="stdin"
data=sys.stdin.read()
init_data=data.strip()
chars,words,lines=get_count(init_data)
print_wc(chars,words,lines,fn)

转载于:https://blog.51cto.com/davidbj/1223795

Python下使用optparse模块实现对多个文件进行统计【二】相关推荐

  1. Python下使用tarfile模块来实现文件归档压缩与解压

    Python下使用tarfile模块来实现文件归档压缩与解压   部分转自:http://www.diybl.com/course/3_program/python/20110510/555345.h ...

  2. 对python来说、一个模块就是一个文件-Python如何将将模块分割成多个文件

    问题 你想将一个模块分割成多个文件.但是你不想将分离的文件统一成一个逻辑模块时使已有的代码遭到破坏. 解决方案 程序模块可以通过变成包来分割成多个独立的文件.考虑下下面简单的模块: 1 2 3 4 5 ...

  3. python getopt argparse_python OptParse模块和argparse命令行解析的用法详解

    https://www.cnblogs.com/wj-1314/p/8974021.html OptParse模块的简单介绍 Python 有两个内建的模块用于处理命令行参数: 一个是 getopt只 ...

  4. Python中的 optparse模块

    python的内置模块中对于命令行的解析模块共两个getopt 和 optparse .不过getopt过于简单,往往不能满足需求.此时可以使用optparse模块.这个模块相对于getopt更新,功 ...

  5. python下的spectral模块(高光谱图像处理)

    Spectral Python (SPy)是一个用于处理高光谱图像数据的纯Python模块.它具有读取.显示.操作和分类高光谱图像的功能. 之所以用它是因为这个对多波段图像的支持更好 参考 一.SPy ...

  6. python读取大文件目录_Python读取系统文件夹内所有文件并统计数量的方法

    大家先看一下Python os模块中的部分函数 python 路径相关的函数 os.listdir(dirname):列出dirname下的目录和文件 os.getcwd():获得当前工作目录 os. ...

  7. python下的mysql模块包装

    #!/usr/bin/env python # -*- coding: utf-8 -*-""" 设计db模块的原因:1. 更简单的操作数据库一次数据访问: 数据库连接 ...

  8. python zipfile模块,关于python:使用ZipFile模块从zipfile中删除文件

    我想从zip文件中删除文件的唯一方法是创建一个临时zipfile,而不删除该文件,然后将其重命名为原始文件名. 在python 2.4中,ZipInfo类具有属性file_offset,因此可以创建第 ...

  9. Python下安装Pywifi进行WiFi密码破解

    Python下安装Pywifi进行WiFi密码破解 能成功的在Python下安装Pywifi模块的方法及软件 前段时间在网上看了一些关于Python下安装Pywifi模块的方法,很多都是安装不成功的, ...

最新文章

  1. 杭电find the night
  2. Java黑皮书课后题第7章:**7.17(对学生排序)编写一个程序,提示用户输入学生个数、学生姓名和他们的成绩,然后按照学生成绩的降序打印学生的姓名。假定姓名是不包含空格的字符,使用next()读取
  3. cass坡度土方计算案例_【九天教您南方cass 9.1】 12 道路断面土方计算
  4. 彻底理解内存泄漏,memory leak
  5. 海洋工作室——网站建设专家:全数据库比较工具
  6. 分析了 200w 行 OpenHarmony 2.0 源码后,有了这些发现
  7. php项目打不开DNS,电脑无法打开网页显示错误代码dns_probe_possible怎么解决?
  8. 机器学习笔记【二】逻辑回归与分类(1):逻辑回归参数更新规则以及pytorch实现
  9. graphpad prism柱状图横坐标斜着_GraphPad Prism 绘图教程 | 如何在图表中对齐对象
  10. ECS Windows 系统蓝屏 (BSOD) 以及停止响应 (Hang) 的处理
  11. 简单实现查找题库随机出题, 且可点击查看对应答案
  12. DiskPart使用方法(ZT)
  13. 忘记Jenkins管理员密码的解决办法
  14. CocosCreator微信小游戏开发 之 开放数据域设置微信好友排行榜布局自适应高度和宽度
  15. Matlab——常用函数的用法总结(部分直接摘自mathwork,持续更新)
  16. 基于docker 部署 canvas-lms
  17. ffmpeg 常用命令总结:(avi转MP4、MP4转ts、视频压缩、去除视频声音、合并音频和视频)
  18. PD协议芯片,20W45WPD快充方案
  19. wps怎么把字缩到最小_WPS文字如何调节字体大小突破字号72的限制实现大小随意调...
  20. drupal 中基本的数据库操作

热门文章

  1. org.xml.sax.SAXParseException: The string -- is not permitted within comments.
  2. 关于ElasticSearch处理过滤条件
  3. 详解TCP协议三次握手四次挥手
  4. linux隐藏tomcat版本_Ubuntu 14.04隐藏Tomcat-7.0.52的版本号与操作系统类型
  5. sql随机抽取数据50条_厉害!苏宁通过citus打造分布式数据库抗住DB高负载
  6. 文件路径和模块路径、nodemon工具
  7. php yii 表单title,Yii2.0-ActiveForm表单结构自定义教程
  8. MySQL常见错误代码(转)
  9. Multi GET  API
  10. 2021快手奢侈品行业数据价值报告