1
xiaozi 2015-05-04 20:37:48 +08:00 1
只要每行的长度不是很大的话,1w 行,小 case 吧;直接全部读到内存好了。
|
2
oxyflour 2015-05-04 20:49:16 +08:00 1
with open(fileName, 'r') as fin:
for line in fin.readlines(): pass # do sth 试过读几百兆的文本,并不需要什么特别的处理 |
3
Septembers 2015-05-04 20:56:30 +08:00 1
|
4
clino 2015-05-04 21:24:41 +08:00
"读取第二行的文字替换到列表中"这是什么意思?
做完了最后剩下还是一个元素的list? |
5
seki 2015-05-04 21:49:44 +08:00
一万行不多啊,除非你一行有几万字……不过同没看懂你的操作描述
|
6
frankzeng 2015-05-04 22:20:10 +08:00 via Android 1
开销在磁盘io上,一万行很少的数据,读到内存中去
|
7
lonin OP |
9
lonin OP |
10
clino 2015-05-04 23:02:32 +08:00
@lonin 你要一行行地读并且一行行地分析html?
这个可能对你有用: https://docs.python.org/2/library/htmlparser.html#example-html-parser-application 里面的feed可以一行行往里面填数据 |
11
fy 2015-05-04 23:05:30 +08:00 1
@lonin 楼主确定标签是不闭合的吗?
底子还是这个正则: re.search(r'<(.*?)>.*?</\1>', '<p>123</p>2').group(0) '<p>123</p>' 思路是在读取操作中简单的分为两个状态: for i in lines: 状态1 尚未出现成对元素:继续读下一行,将本行结果和下一行合并 状态2 出现闭合元素:储存内容 举个栗子: [初始化] buf = '' buf += newline [1] buf : <p>hello 不匹配,continue [2] buf : <p>hello world!</p> 匹配,储存数据 buf = '' [3] ... [4] ... |
13
xxer 2015-05-06 14:24:52 +08:00
readlines从内存使用情况看,效果很差
|