jieba分词和文件读写

jieba 分词

jieba分词有三种模式,精确模式(默认)、全模式和搜索引擎模式,下面对这三种模式分别举例介绍:

 

当需要对文件进行读写和分词时 需要做如下的操作

 

读文件 

打开一个文件用open()方法(open()返回一个文件对象,它是可迭代的):

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

r 表示文本文件,rb表示二进制文件。这个mode参数默认值就是r

但是如果文件不存在,就会抛出一个IOerror的异常。 并且在文件使用完毕后必须关闭避免占用操作系统的资源,所以每次打开一次文件就需要一个关闭文件。

f.close()

所以每次都这么写实在太繁琐,python引入了with 替我们自动调用close()方法。

with open('/file', 'r') as f:
    print(f.read())

python文件对象提供了三个“读”方法: read()、readline() 和 readlines()。每种方法可以接受一个变量以限制每次读取的数据量。

  • read() 每次读取整个文件,它通常用于将文件内容放到一个字符串变量中。如果文件大于可用内存,为了保险起见,可以反复调用read(size)方法,每次最多读取size个字节的内容。
  • readlines() 之间的差异是后者一次读取整个文件,象 .read() 一样。.readlines() 自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for ... in ... 结构进行处理。
  • readline() 每次只读取一行,通常比readlines() 慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用 readline()。

注意:这三种方法是把每行末尾的'\n'也读进来了,它并不会默认的把'\n'去掉,需要我们手动去掉。

写文件

写文件和读文件是一样的,唯一区别是调用

open()函数时,传入标识符'w'或者'wb'表示写文本文件或写二进制文件:

with open('test.txt', 'w') as f:
    f.write('Hello, world!')

关于open()的mode参数

'r':读

'w':写

'a':追加

'r+' == r+w(可读可写,文件若不存在就报错(IOError))

'w+' == w+r(可读可写,文件若不存在就创建)

'a+' ==a+r(可追加可写,文件若不存在就创建)

对应的,如果是二进制文件,就都加一个b就好啦:

'rb'  'wb'  'ab'  'rb+'  'wb+'  'ab+'

 

#分词小黄鸭语料

import  jieba
with open('D:/python_workplace/chatterbot/xiaohuangji50w_nofenci.conv','r',encoding='utf-8')as f:
    for line in f:
        seg =jieba.cut(line,cut_all=False)
        s='/'.join(seg)
        m=list(s)
        with open('fc4.txt','ab+') as f:
            for word in m:
                f.write(word.encode('UTF-8'))

 

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值