python统计词频瓦尔登湖_1.5 python文件操作

本文介绍了Python中的文件操作,包括打开、写入和读取文件,并展示了如何统计《瓦尔登湖》小说中的单词词频,通过正则表达式去除标点并进行排序。
摘要由CSDN通过智能技术生成

1.5.1 文件的具体操作

打开文件

f = open('test.txt', 'w')

在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件:

open(文件名,访问模式)

写数据(write)

f = open('test.txt', 'w')

f.write('hello world,\n')

f.write('i am here!\n')

f.close()

结果

hello world,

i am here!

读数据(read)

part 1

f = open('test.txt', 'r')

content = f.read(5)

print(content)

print("-"*30)

content = f.read()

print(content)

f.close()

结果

hello

------------------------------

world,

i am here!

使用read(num)可以从文件中读取数据,num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据

part 2

f = open('test.txt', 'r')

content = f.readlines()

print(type(content))

结果

['hello world,\n', 'i am here!\n']

总结

打开文件

文件操作方法

1.5.2 操作实例

小说《Walden》单词词频统计

Walden中文译名《瓦尔登湖》,是美国作家梭罗独居瓦尔登湖畔的记录,描绘了他两年多时间里的所见、所闻和所思。该书崇尚简朴生活,热爱大自然的风光,内容丰厚,意义深远,语言生动。请用Python统计小说Walden中各单词出现的频次,并按频次由高到低排序。

示例:

lyric = ‘The night begin to shine, the night begin to shine’

words = lyric.split()

print(words)

words.count(words[1])

import re # 正则表达式

f = open('Walden.txt', 'r')

txt = f.read() # 读取进来的数据类型是字符串

f.close()

txt = txt.lower() # 英文字母全部变成小写

txt = re.sub('[,.?:"\'!-]', '', txt) # 去除小说中的标点符号

words = txt.split() # 单词分割

word_sq = {}

for i in words:

if i not in word_sq.keys():

word_sq[i] = 1

else:

word_sq[i] += 1

res = sorted(word_sq.items(), key=lambda x:x[1], reverse=True) # 排序

print(res)

txt = re.sub('[,.?:"\'!-]', '', txt)

txt = re.sub('带去除的内容', '需替换的内容',需处理的字符串)

res = sorted(word_sq.items(), key=lambda x:x[1], reverse=True)

reverse是降序排列

结果太长了,自己运行

附 'Walden.txt',字数限制,需要的私聊我

原文链接:https://blog.csdn.net/lue_lue_lue_/article/details/107129238

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值