2 weuliang weuliang 于 2016.03.14 03:48 提问

python 处理大量数据的正则表达式替换问题

如图我有一个文件有大量类似这样的数据,我在数据库内有这些ip地址跟路由器号的对应关系,我想要把这些ip地址全部替换为对应的路由器号。目前我用的是逐行用正则表达式找到这些ip地址并进行替换,但因为一个文件有300多万行,处理起来很慢,有没有什么方法可以使得处理更快???
图片说明

4个回答

fateflv
fateflv   2016.03.14 16:19

如果先排序再替换的话可能会快点,但是你这是路由追踪信息,那就不能排序了,否则排序后对路由追踪就没有意义了,只能逐行替换。

oyljerry
oyljerry   Ds   Rxr 2016.03.14 21:13

如果是一行行数据 那么可以试试一行行的生成器 然后再用正则来匹配

qq_32637017
qq_32637017   2016.03.14 23:51

请问一下你的逐行正则怎么实现的,我也在处理类似的问题,还望指教,能把代码贴出来吗

u010911997
u010911997   2016.03.17 22:07

大文件切成小文件,然后多线程可否?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
棘手的大数据处理问题(正则表达式)
前段时间,我采集了四万多条 壁纸 数据,格式类似下面那样:-------------------a 1 2 3 -------------------b ak al am an ao ap aq ar -------------------c 1 11 21 31 41 51 61 71因为要导进mysql数据库,我想要的最终格式是这样:a-1 a-2 a-3b-ak b-al b-am b-an
python里使用正则表达式来替换匹配成功的组并输出替换的次数
在前面我们学习过怎么样限制替换的次数,如果我们想知道正则表达式里匹配成功之后,替换字符串的次数,那么需要怎么办呢?这是一个好问题,这时就需要采用另一个外函数subn()了。这个函数不但输出替换后的内容,还输出替换的次数,例子:#python 3.6 #蔡军生 #http://blog.csdn.net/caimouse/article/details/51749579 # import re
python里使用正则表达式来替换匹配成功的组名
在前面学习了找到组之后,通过组序号来替换,比如像bold.sub(r'\1', text)),这里是通过\1来替换的,这样的方式就是简单,快捷。但是不方便维护,不方便记忆,要想把这点改进一下,就得使用组名称的方式来替换,就跟前面学习组名称匹配一样,给一个组起一个名称,也像为什么给每一个人起一个名称一样,方便区分和记忆。因此使用这样的语法:\g,这里\g是表示使用组名称,name是组名称。例子如下:
用正则表达式替换文本中的空格
有的时候需要用脚本来判断 某个文本框的内容是否为空 由于脚本中没有trim这个函数因此我们需要用 正则表达式来 过滤这个空格var getValue=document.getElementById("txtUrgency").value;   getValue=getValue.replace(/^/s+|/s+$/,"");
使用正则表达式批量操作文本
需求:把数据库上插入数据的语句扒下来,处理成自己想要的语句,批量插入测试数据 唯一标识符——ID。这个不能原样插入,必须使用sys_guid()生成UUID。要替换掉原来的ID,最简单的就是手动一条条替换。 这里,涉及了一个编程原则——DRY原则(Don't Repeat Yourself)。重复劳动是不可取的,要动脑。 这里可以用正则表达式,匹配“单引号内含32个字母或数字
Python(10):文本处理,正则表达式
os.getcwd() 返回当前目录 >>> os.getcwd() 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36-32' os.listdir(directory) 返回directory目录中的文件名和子目录列表 >>> a = os.getcwd() >>> os.listdir(a)
Python通过正则表达式获取,去除(过滤)或者替换HTML标签的几种方法(本文由169it.com搜集整理)
python正则表达式关键内容: python正则表达式转义符: 1 2 3 4 5 6 7 8 9 10 11 12 13 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结
正则表达式替换多行字符串
处理字符串,尤其是复杂且很长的字符串,正则表达式当然是首选。。。在博客、论坛中在HTML编辑器中写文章时,过滤一些危险代码是非常且有必要的。Javascript过滤:// 替换代码中的Script代码function shield_script(str) { if(str == null || str == ) return ; str = str.re
python里使用正则表达式来替换匹配成功的组并限定替换的次数
在前面学习过通过组名称来替换原来的字符串,这种替换只要出现相同的匹配成功,就会替换,而不管出现多少次。如果有一天,项目经理说要只需要替换第一个,或者前5个,怎么办呢?哈哈,这时你就得使用sub函数的count参数了,它可以指定替换的次数,轻松地解决了问题,例子如下:#python 3.6 #蔡军生 #http://blog.csdn.net/caimouse/article/details/51
python - 在 DataFrame 中使用正则表达式
1. 正则表达式文档 Python正则表达式指南 Python爬虫入门七之正则表达式 2. example df[['室', '厅', '厨', '卫']] = df['户型'].str.extract('(\d+)室(\d+)厅(\d+)厨(\d+)卫', expand=False) df.head(3)