【Python 写的小工具】计算 txt 文件中中文字符的平均字数和平均行数
2018-03-30 00:26
741 查看
还是老师让写的小程序,好像是用来处理文字识别之后产生的 txt 文件。
怎么用:传入一个目录,还你一个result.txt。
具体看代码吧,写的很直白。import os
def is_chinese(uchar):
if uchar >= u'\u4E00' and uchar <= u'\u9FA5':
return True
else:
return False
def count_word(file):
f=open(file, 'r', encoding='UTF-8')
count=0
for i in f.read():
if is_chinese(i):
count+=1
f.close()
print(file)
return count
def count_line(file):
f1=open(file, 'r+', encoding='UTF-8')
temp=[]
for line in f1.readlines():
if line != '\n':
temp.append(line)
f1.close()
f2=open(file, 'r+', encoding='UTF-8')
f2.truncate()
for line in temp:
f2.write(line)
f2.close()
f3=open(file, 'r+', encoding='UTF-8')
lines=len(f3.readlines())
f3.close()
return lines
def average(dir):
list=os.listdir(dir)
os.chdir(dir)
sumword=0
sumline=0
for i in list:
sumword=sumword+count_word(i)
sumline=sumline+count_line(i)
os.chdir("..")
f=open("result.txt", "w+", encoding='UTF-8')
f.write("%s %s %.3f\n" %(dir ,"目录中平均汉字字数为:" ,sumword/len(list)))
f.write("%s %s %.3f\n" %(dir ,"目录中平均行数为:" ,sumline/len(list)))
f.close
average("t")为什么里面数行数的那个函数那么麻烦,是因为老师给的需求是要忽略txt文件里的空白行,不仅忽略,在程序运行的时候,直接把有空白行的 txt 文件里的空白行去掉了。如果不需要去掉,程序会简单很多。半个月前写的了,也忘了,感觉挺浅显的,就不写注释了。
怎么用:传入一个目录,还你一个result.txt。
具体看代码吧,写的很直白。import os
def is_chinese(uchar):
if uchar >= u'\u4E00' and uchar <= u'\u9FA5':
return True
else:
return False
def count_word(file):
f=open(file, 'r', encoding='UTF-8')
count=0
for i in f.read():
if is_chinese(i):
count+=1
f.close()
print(file)
return count
def count_line(file):
f1=open(file, 'r+', encoding='UTF-8')
temp=[]
for line in f1.readlines():
if line != '\n':
temp.append(line)
f1.close()
f2=open(file, 'r+', encoding='UTF-8')
f2.truncate()
for line in temp:
f2.write(line)
f2.close()
f3=open(file, 'r+', encoding='UTF-8')
lines=len(f3.readlines())
f3.close()
return lines
def average(dir):
list=os.listdir(dir)
os.chdir(dir)
sumword=0
sumline=0
for i in list:
sumword=sumword+count_word(i)
sumline=sumline+count_line(i)
os.chdir("..")
f=open("result.txt", "w+", encoding='UTF-8')
f.write("%s %s %.3f\n" %(dir ,"目录中平均汉字字数为:" ,sumword/len(list)))
f.write("%s %s %.3f\n" %(dir ,"目录中平均行数为:" ,sumline/len(list)))
f.close
average("t")为什么里面数行数的那个函数那么麻烦,是因为老师给的需求是要忽略txt文件里的空白行,不仅忽略,在程序运行的时候,直接把有空白行的 txt 文件里的空白行去掉了。如果不需要去掉,程序会简单很多。半个月前写的了,也忘了,感觉挺浅显的,就不写注释了。
相关文章推荐
- [原创]Python小工具 —— 计算 文件 或 文件夹及其所有子文件夹中所有文件 的 代码行数
- 使用python读取txt文件的内容,并删除重复的行数方法
- asp.net 按行读取包含中文的文本(txt)文件并取得行数
- python逐个读取txt字符修改过后放到另一个txt文件中
- Python写入txt文件中的中文Unicode无法显示为中文
- Python计算一个文件里字数的方法
- 读取含中文字符的txt文档python代码
- python计算文本文件行数的方法
- python从文件中读入中文字符
- Linux下统计文件行数 语法:wc [选项] 文件… 说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所有 指定文件的总统计数。字是由空格字符
- python读取txt文件时的中文乱码问题
- 采用native2ascii工具将中文字符的资源文件转换为Unicode代码格式的文件
- python计算文件的行数和读取指定行的内容
- asp.net 按行读取包含中文的文本(txt)文件并取得行数
- java学习笔记_将中文字符导出txt文档_从txt文档读取文件
- Linux命令之统计文件行数、字数、字符数-wc
- Python 读写txt文件中文简单处理
- Python 3下使用Matplotlib工具画图,中文显示乱码的问题解决(修改配置文件)
- python-读取文件和计算文件行数
- c++计算一个TXT文件的行数