Python 文件打开,读取,写入。

2018-01-23  本文已影响0人  _发强

前言介绍:

有一个文本文件,内容为以下格式:

小甲鱼:哈喽
小客服:how are you 
小甲鱼: 你在弄啥嘞
小客服:没弄啥啊。
小甲鱼:今天业务咋样。
小客服:还行,客户不多。
小甲鱼:那岂不是很悠闲。
小客服:还好吧。
================================
小甲鱼:这是第二段了,
小客服:恩,好的。
小甲鱼:那好吧。我们开始。
小客服:行,那你先说。
小甲鱼:为什么不是你先说。
小客服:那算了,就这样吧。
==============================
小甲鱼:哎呀,我这是服了你了。
小客服:哼哼,咋样。厉害不。
小甲鱼:行行行,你厉害行了吧。
小客服:那必须滴。快道歉。
小甲鱼:切,我就不道歉。
小客服:呵,那就再见咯。

以 ===== 为界限,分成三份文本文件。并且,要把小甲鱼,和小客服的对话内容分开。最终也就是六份文本文件。

实现

以下是实现代码:

# coding=UTF-8
import codecs   #这里导入了一个 `codecs` 库来进行文件操作。

def saveFile(boy ,girl ,count):
    '生成文件,并写入内容。'
    file_name_boy = 'boy_'+str(count)+'.txt'
    file_name_girl = 'girl_'+str(count)+'.txt'
    boy_file = codecs.open(file_name_boy , 'w' ,'UTF-8')
    girl_file = codecs.open(file_name_girl,'w','UTF-8') ## 这里创建,并写入文件,指定编码为 utf-8
    
    boy_file.writelines(boy)
    girl_file.writelines(girl)
    
    boy_file.close()
    girl_file.close()


def splitFile(fileName):
    '实现文件切割逻辑'
    f = codecs.open(fileName,'r','UTF-8')

    ##f = open('/Users/apple/Desktop/talking.txt')
    boy = []
    girl = []
    count =1

    for each in f: ## 这里直接对 file 进行遍历,一次为一行。
        if each[:6] !='======':
            (role , line_spoken) = each.split(':',1) ##这里第二个参数为1 也就是切割一次,生成两个字符串,所以前面以两个字符串来接收。
            if role == '小甲鱼':
                boy.append(line_spoken)
            if role == '小客服':
                girl.append(line_spoken)

        else :
            saveFile(boy ,girl ,count)
            count +=1

            boy = []
            girl=[]

    saveFile(boy ,girl ,count)

    f.close()

splitFile('/Users/apple/Desktop/talking.txt')

上一篇下一篇

猜你喜欢

热点阅读