[問題] 讀取會議文件遇到問題

作者: 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