文档章节

python3统计文件中字符或字符串出现的次数,支持同时多个字符串

Jamie-Liu
 Jamie-Liu
发布于 2016/07/27 16:00
字数 236
阅读 1720
收藏 1

    脚本如下:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import re

print()
obj_file = input("\033[33m请输入文件路径及文件名:\033[35m");"\033[0m"
print()
obj_str = input("\033[33m请输入要查找的字符或字符串,多个以空格分隔:\033[35m");"\033[0m"
print()
file_obj = open('%s' % obj_file, 'r').read()
str_re = "|".join(re.sub(' +', ' ', obj_str).split(" "))
all_str = re.finditer(r'%s' % str_re, file_obj)
count_dict = {}
for s in all_str:
    count_dict[s.group()] = count_dict.setdefault(s.group(), 0) + 1

# k[0]表示按key值,k[1]表示按value值排序,reverse为True表示倒序,False表示正序
count_dict = sorted(count_dict.items(), key=lambda k: k[1], reverse=True)

for c in count_dict:
    print("\033[32m【 %s 】 出现的次数为 : %d\033[0m" % (c[0], c[1]))

print()
 

    脚本执行效果:

 

    查看源文件,核对:

© 著作权归作者所有

共有 人打赏支持
Jamie-Liu
粉丝 3
博文 18
码字总数 12225
作品 0
宜昌
私信 提问
用python玩转数据|数据获取与表示

文件读写 file_obj.write(str) :向文件中写字符串 file_obj.read() :读文件直到文件结束,返回字符串 file_obj.read(size):从文件读size个字节数据,返回字符串 python从读文件中读取行的时...

darlingwood2013
2017/03/10
0
0
打造基于hadoop的网站日志分析系统(5)之spark在日志分析系统里的简单应用

1.下载spark和运行 wget http://apache.fayea.com/apache-mirror/spark/spark-1.0.0/spark-1.0.0-bin-hadoop2.tgz 我这里下载的是1.0.0版,由于我们只是测试spark的用法所以不需要配置spark集...

豚鼠窝窝
2014/07/10
0
0
Python字符串常用处理函数

代码运行 python 版本 3.7 index() 获取子串在字符串中出现的位置索引值 使用索引获取单字符 索引0为第一字符。索引可为负数,表示从尾部(右侧)起始 使用切片获取子串 获取子串包括首索引字...

编程老陆
01/26
0
0
剑指offer 34. 第一个只出现一次的字符

原题 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). Reference Answer 思路分析 直接遍历字符串...

dby_freedom
2018/11/20
0
0
LeetCode 438. Find All Anagrams in a String (查找字符串所有的变位词)

原题 Given a string s and a non-empty string p, find all the start indices of p’s anagrams in s. Strings consists of lowercase English letters only and the length of both stri......

dby_freedom
2018/12/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

C++友元函数和友元类(C++ friend)详解

私有成员只能在类的成员函数内部访问,如果想在别处访问对象的私有成员,只能通过类提供的接口(成员函数)间接地进行。这固然能够带来数据隐藏的好处,利于将来程序的扩充,但也会增加程序书...

shzwork
23分钟前
0
0
JAVA对map进行分组

public static Map<String, List<Map<String, Object>>> transition(List<Map<String, Object>> list){ Map<String, List<Map<String, Object>>> map = new HashMap<>(); //......

火龙战士
30分钟前
0
0
Confluence 6 升级完成后的检查

这个页面中的文章将会为 Confluence 管理员为 Confluence 升级完成后 提供检查列表以确保 Confluence 的升级顺利完成。这个检查列表没有包含所有需要检查的错误,但是将会检查会通常出现错误...

honeymoose
33分钟前
1
0
Vue.js开发环境搭建说明(mac)

vue开发环境搭建(mac) 投影放大:cmd + + 安装Node 下载Node 官网下载 https://nodejs.org/en/download/ 安装Node 双击安装包,选择安装目录,比如: /usr/local/bin 安装成功后最好记录一...

Danni3
49分钟前
2
0
Qt编写自定义控件3-速度仪表盘

前言 速度仪表盘,写作之初的本意是用来展示当前测试的网速用的,三色圆环+数码管显示当前速度,Qt自带了数码管控件QLCDNumber,直接集成即可,同时还带有动画功能,其实也可以用在汽车+工业...

飞扬青云
54分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部