[问题] 读取会议文件遇到问题

楼主: TZULIU (消费券收购商)   2019-01-30 12:08:39
我打算分析100多个会议文件,
范例如下:https://tinyurl.com/yalydvd8
但在分析之前,我想先将文件转成资料储存,
资料中的每一行,第一个数值是发言者,第二个数值是发言者的发言内容。
例如:["张三","我今天早上吃了一碗卤肉饭,超好吃的。"]
我目前的进度如下:
Name = []
sentence = []
file = open('会议文件','r')
for line in file:
if line.find(':') != -1:
tokens = line.split(":")
Name.append(tokens[0])
else:
sentence.append(line + " ")
我现在想不通该怎么样把得到的发言者姓名和内容放在一起,
然后再继续找下一个发言者和发言内容。
还请各位高手帮忙解惑,谢谢!
作者: lajji (喇机)   2019-01-30 12:20:00
用冒号当分隔符存成csv?
作者: TitanEric (泰坦)   2019-01-30 13:27:00
你把名字放进name list之后 在下一段应该是讲话内容所以你就 Name.pop() 可以把上一个放进的名字拿出来当然 应该用一个变量去存上一个名字就可以 不用list
作者: highpower   2019-01-30 15:08:00
当某行出现冒号时,就表示新的发言者出现
作者: yangs0618 (阿彰)   2019-01-30 19:01:00
那请问一下会有一句话讲完没换行直接出现另个名字吗如果一个人讲完一定换行 可以用到if “:” in line:暂存的text append进sentence else: text.extend(line)
作者: TitanEric (泰坦)   2019-01-31 00:48:00
楼上方法记句子 另一个变量记名字 遇到名字丢进list
作者: nini200 (200妮妮)   2019-01-31 01:29:00
只用:判断 后面不同人的发言 没法分类正确吧?大致上有写出来了 给你参考先找出所有说话者 重复的用集合去掉我的方法 A阵列储存要的名字行号B阵列储存非要的名字行号C阵列将AB阵列合并例A=[0,9]B=[3,6,11]C=[0,3,6,9,11,16]0-3 9-11就是要的内容 C阵列16是最后一行打错 B阵列储存非要名字含冒号的行号我的方法比较麻烦 有更好方法烦请告知
作者: jasonfghx (工人)   2019-01-31 09:50:00
WOW
作者: nini200 (200妮妮)   2019-01-31 21:12:00
谢谢分享
作者: lemon651 (小明)   2019-02-01 11:02:00
干麻那么麻烦 就用你原本的方法不好吗? 直接用一个空字串不停的加就好了阿遇到冒号就append字串 再append名字 然后字串加后面的line 再遇到冒号之前不停的加 缺点就是第一格会是空字串但是remove掉就好了 用deque的话可以省remove掉的时间

Links booklink

Contact Us: admin [ a t ] ucptt.com