Pickle谈话内容(conversations)按角色(role)不同存入文本

转载 2017年01月03日 18:07:51

将上课demo中的谈话内容(conversations)按角色(role)的不同,分别存入两个文本文件中

man = [] #分别定义两个list 用来存储两个role的conversations
other = []

try:
    data = open('sketch.txt')
    try:
        for each_line in data:
            (role, line_spoken) = each_line.split(':', 1)
            line_spoken = line_spoken.strip()
            if role == 'man': #通过判断role来确定要存入的list
                man.append(line_spoken)
            else:
                other.append(line_spoken)
    except ValueError:
        pass
    data.close() #别忘了完成文件操作关闭数据文件对象
except IOError:
    print('The file is missing!')

try:
    man_file = open('man_data.txt', 'w') #数据文件对象中的文件参数如果不存在,并且相应目录有相应权限,open()会自动创建文件
    other_file = open('other_data.txt', 'w') # 'w'为文件数据对象的'写'模式

    print(man, file = man_file) #print()函数中的file参数为写入的文件名
    print(other, file = other_file)

    man_file.close() #别忘了完成文件操作关闭数据文件对象
    other_file.close()
except IOError:
    print('File Error!')

随后,这个问题被加深了难度,见网址:
http://bbs.fishc.com/forum.php?mod=viewthread&tid=45890&extra=page%3D1%26filter%3Dtypeid%26typeid%3D398

# -*- coding: utf-8 -*-
import pickle

def save_file(boy,girl,count):
    file_name_boy="boy_"+str(count)+".txt"
    file_name_girl= "girl_" + str(count) + ".txt"

    boy_file=open(file_name_boy,"wb")
    girl_file=open(file_name_girl,"wb")

    pickle.dump(boy,boy_file)
    pickle.dump(girl,girl_file)

    boy_file.close()
    girl_file.close()

def split_file(file_name):
    count=1
    boy=[]
    girl=[]

    file_read=open(file_name,"r")
    for each_line in file_read.readlines():
        if each_line[:6] != "======":
            print(each_line.split(":", 1))
            (role,line_spoken)=each_line.split(":",1)
            line_spoken=line_spoken.strip()
            if role=="小甲鱼":
                boy.append(line_spoken)
            if role=="小客服":
                girl.append(line_spoken)
        else:
            save_file(boy,girl,count)
            boy=[]
            girl=[]
            count+=1

    file_read.close()


split_file("record.txt")

注:
有人出现这个问题:
Traceback (most recent call last):
File “C:\Users\Administrator\Desktop\s.py”, line 7, in
role, line_spoken = line.split(“:”, maxsplit=1)
ValueError: not enough values to unpack (expected 2, got 1)

原因:record.txt文件中“:”是中文的冒号,split(“:”,1)和record.txt中冒号要统一。

我当时错在了这行:

if each_line[:6] != "======":

漏掉了[:6],导致程序运行到“===========”,没有冒号,无法split。

if标签的使用使根据不同角色登陆而呈现不同菜单项

怎样根据不同角色登陆而呈现不同菜单项 先在LoginAction中获取用户的所属角色 $user= M('usertab'); $r=M('role_user'); $role=M('role...
  • xiesumin
  • xiesumin
  • 2015-05-04 20:54:16
  • 190

一次性导出所有ROLE对应的TCODE.

se16 -> agr_1251  -> OBJECT  s_tcode  FILED tcd  
  • jamesxsy
  • jamesxsy
  • 2010-04-21 22:45:00
  • 1922

轻松学MVC4.0–5 角色Roles

一个系统的权限模型,可能简单也可能复杂。 但是如果掌握了简单的基础,复杂的东西就可以很好的解决。 我们就从简单的东西学起。打开表webpages_Roles,添加两个角色: 打开View...
  • xingxing513234072
  • xingxing513234072
  • 2013-06-26 11:04:08
  • 4185

mysql 用户角色权限表建立

整理的网上的资料,亲测无错误
  • wd4java
  • wd4java
  • 2015-06-06 23:53:06
  • 3582

Role分析模式(一) 角色对象基本概念

概要在任何应用系统中,每一个对象都可能扮演多种角色,你在家里是父亲,在公司则可能是一个程序员,一个为你提供原材料的公司可能同时又是你的客户。。,这样的问题一次又一次的出现,我经常看到应用系统不能很好处...
  • ivanlovetracy
  • ivanlovetracy
  • 2005-05-28 02:52:00
  • 1071

对新员工的谈话

很多时候感觉对新员工有很多要求要说,但又不太好确定主次,后来仔细思考了一下,对新员工有一下要求。 1、不要对公司的期望太高,就像没有完美的人一样,同样没有完美的公司。任何公司都是有问题的,比如管理的...
  • zhulinu
  • zhulinu
  • 2014-01-10 11:57:39
  • 8197

入党谈话内容

前两天,本人有幸入党,特把谈话内容写下来,以享后者。(呵呵,有些凌乱)  一、共产党是怎么样一个党(性质)    二、简单党史    三、党的宗旨   四、党的奋斗目标  五、党的指导思想(行动指南)...
  • zhzociboss
  • zhzociboss
  • 2008-11-16 12:06:00
  • 21960

DB2权限管理-组(group) 和角色(role)的区别

DB2权限管理中组和角色的管理的确让很多人(不管是菜鸟还是老鸟)感到困惑。 相对而言,oracle就好多了,根本就没有组的概念,只有角色。 而在DB2和Oralce的概念映射里,DB2的组实际上也被影...
  • neu_lcj77
  • neu_lcj77
  • 2017-05-03 11:15:16
  • 1432

Cloudera Manager ☞ Role&Role Instance &Role Group&Service关系

简述在Cloudera Manager中 角色实例,角色,角色组,服务几者之间的关系
  • Team77
  • Team77
  • 2016-05-12 15:57:59
  • 1150

mysql 创建角色并赋予角色

1、创建用户:CREATE USER ‘username’@’host’ IDENTIFIED BY ‘password’;username:用户名;host:指定在哪个主机上可以登录,本机可用loc...
  • Wzy_weiziyang
  • Wzy_weiziyang
  • 2017-12-20 17:41:26
  • 373
收藏助手
不良信息举报
您举报文章:Pickle谈话内容(conversations)按角色(role)不同存入文本
举报原因:
原因补充:

(最多只允许输入30个字)