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/cn.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灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP