Python 板


LINE

我打算分析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 + " ") 我現在想不通該怎麼樣把得到的發言者姓名和內容放在一起, 然後再繼續找下一個發言者和發言內容。 還請各位高手幫忙解惑,謝謝! --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 168.150.122.93
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1548821321.A.461.html ※ 編輯: TZULIU (168.150.122.93), 01/30/2019 12:17:39 ※ 編輯: TZULIU (168.150.122.93), 01/30/2019 12:19:54
1F:推 lajji: 用冒號當分隔符存成csv? 01/30 12:20
2F:推 TitanEric: 你把名字放進name list之後 在下一段應該是講話內容 01/30 13:27
3F:→ TitanEric: 所以你就 Name.pop() 可以把上一個放進的名字拿出來 01/30 13:28
4F:→ TitanEric: 當然 應該用一個變數去存上一個名字就可以 不用list 01/30 13:28
兩位高手的建議因為文件結構應該無法運行,把冒號當分隔符取出發言者沒問題, 但是發言內容可能會有很多行。假設我資料的第一行是 「小明:」,然後接下來的 八行都是小明發言的內容,然後再下一行(第十行)是「小華:」,然後接下來的五行 都是小華的發言內容,我的問題是,我應該怎樣讓電腦知道,在讀完第九行之後, 創建一個list如["小明","八行內容"],然後再讀取剩下的六行,然後在最後創立一個 list為["小華","五行內容"]。謝謝! ※ 編輯: TZULIU (168.150.122.93), 01/30/2019 14:21:08
5F:推 highpower: 當某行出現冒號時,就表示新的發言者出現 01/30 15:08
6F:推 yangs0618: 那請問一下會有一句話講完沒換行直接出現另個名字嗎 01/30 19:01
7F:推 yangs0618: 如果一個人講完一定換行 可以用到if “:” in line: 01/30 19:03
8F:→ yangs0618: 暫存的text append進sentence else: text.extend(line) 01/30 19:04
9F:推 TitanEric: 樓上方法記句子 另一個變數記名字 遇到名字丟進list 01/31 00:48
10F:→ nini200: 只用:判斷 後面不同人的發言 沒法分類正確吧? 01/31 01:29
11F:推 nini200: 大致上有寫出來了 給你參考 01/31 05:18
12F:→ nini200: 先找出所有說話者 重複的用集合去掉 01/31 05:19
13F:→ nini200: 我的方法 A陣列儲存要的名字行號B陣列儲存非要的名字行號 01/31 05:21
14F:→ nini200: C陣列將AB陣列合併例A=[0,9]B=[3,6,11]C=[0,3,6,9,11,16] 01/31 05:24
15F:→ nini200: 0-3 9-11就是要的內容 C陣列16是最後一行 01/31 05:28
16F:→ nini200: 打錯 B陣列儲存非要名字含冒號的行號 01/31 05:29
17F:→ nini200: 我的方法比較麻煩 有更好方法煩請告知 01/31 05:37
18F:推 jasonfghx: WOW 01/31 09:50
感謝各位先進的幫忙,我昨晚和今天早上又想了一下加問了一下朋友, 以下是我現在的作法(有點笨但是對於我這種非高手比較容易理解): ##先讀取文件的每一行並建立一個list ##同時也創建一個index file = open('文件', 'r') All_lines = [] Names = [] length = 0 #Read all lines in the text file for line in file: if "Column" not in line: line = re.sub(r"(\d+\.?)", "", line) line = line.strip() if not line: continue else: All_lines.append(line.strip()) length += 1 else: continue ##以新建的list作為新文件並且抓取發言者及其發言並結何為一sub list for i in range(length): temp = [] if All_lines[i].find(':') != -1: #Split the name #Let's split the line into an array called "tokens" using the ":" as a separator: tokens = All_lines[i].split(":") #and let's extract the data: temp.append(tokens[0]) j = i + 1 while j < length and All_lines[j].find(':') == -1: #All_lines[j] = re.sub(r" ", "", All_lines[j]) temp.append(All_lines[j].strip()) j += 1 Names.append(temp) 還請各位高手賜教,謝謝! ※ 編輯: TZULIU (168.150.122.93), 01/31/2019 13:45:20
19F:推 nini200: 謝謝分享 01/31 21:12
20F:推 lemon651: 幹麻那麼麻煩 就用你原本的方法不好嗎? 直接用一個空字 02/01 11:02
21F:→ lemon651: 串不停的加就好了阿 02/01 11:02
22F:推 lemon651: 遇到冒號就append字串 再append名字 然後字串加後面的li 02/01 11:04
23F:→ lemon651: ne 再遇到冒號之前不停的加 缺點就是第一格會是空字串 02/01 11:05
24F:→ lemon651: 但是remove掉就好了 用deque的話可以省remove掉的時間 02/01 11:05







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP