根据视频教程学习的一个Python例子:统计《西游记》这本小说的字数。在这里做一个学习过程的记录。
首先贴代码(源代码无法上传,想使用的就复制粘贴一下吧):
/********************************************************************************************************/
#!/usr/bin/env python
#coding:utf8
import sys
reload(sys)
sys.setdefaultencoding("utf8")
fr = open('xyj.txt', 'r')
characters =
stat = {}
for line in fr:
line = line.strip()
if len(line) == 0:
continue
line = unicode(line) #将文本转为unicode,便于处理汉字
for x in xrange(0, len(line)):
if line in :
continue
if not line in characters:
characters.append(line)
if not stat.has_key(line):
stat] = 0
stat] += 1
print len(characters)
print len(stat)
# lambda生成一个临时函数
# d表示字典的每一对键值对,d为key,d为value
# reverse为True表示降序排序
stat = sorted(stat.items(), key = lambda d:d, reverse = True)
# 控制台输出信息
print stat # key值以Unicode编码输出
for item in stat:
print item + ': ' + str(item)
# 输出信息保存到文件
fw = open('result.csv', 'w')
for item in stat:
fw.write(item + ': ' + str(item) + '\n')
fr.close()
fw.close()
/******************************************************************************************/
有个问题就是stat = sorted(stat.items(), key = lambda d:d, reverse = True)这句话只要屏蔽掉,下面的print item + ': ' + str(item)和fw.write(item + ': ' + str(item) + '\n')就会有问题,报错:
这个问题发问答里了,等待大神帮忙解答下。
将附件xyj.txt和代码放在同一目录下,执行即可。
整个代码测试通过,可以生成文件result.csv
根据视频教程学习的一个Python例子:统计《西游记》这本小说的字数。在这里做一个学习过程的记录。
首先贴代码(源代码无法上传,想使用的就复制粘贴一下吧):
/********************************************************************************************************/
#!/usr/bin/env python
#coding:utf8
import sys
reload(sys)
sys.setdefaultencoding("utf8")
fr = open('xyj.txt', 'r')
characters =
stat = {}
for line in fr:
line = line.strip()
if len(line) == 0:
continue
line = unicode(line) #将文本转为unicode,便于处理汉字
for x in xrange(0, len(line)):
if line in :
continue
if not line in characters:
characters.append(line)
if not stat.has_key(line):
stat] = 0
stat] += 1
print len(characters)
print len(stat)
# lambda生成一个临时函数
# d表示字典的每一对键值对,d为key,d为value
# reverse为True表示降序排序
stat = sorted(stat.items(), key = lambda d:d, reverse = True)
# 控制台输出信息
print stat # key值以Unicode编码输出
for item in stat:
print item + ': ' + str(item)
# 输出信息保存到文件
fw = open('result.csv', 'w')
for item in stat:
fw.write(item + ': ' + str(item) + '\n')
fr.close()
fw.close()
/******************************************************************************************/
有个问题就是stat = sorted(stat.items(), key = lambda d:d, reverse = True)这句话只要屏蔽掉,下面的print item + ': ' + str(item)和fw.write(item + ': ' + str(item) + '\n')就会有问题,报错:
这个问题发问答里了,等待大神帮忙解答下。
将附件xyj.txt和代码放在同一目录下,执行即可。
整个代码测试通过,可以生成文件result.csv