Python 从文件中筛选出ip 正则表达(re)

#!/usr/bin/env python
#_*_coding:utf-8 _*_
__author__ = ‘gaogd‘
import  re

with open(‘arr.txt‘,‘r‘) as f:
    for line in f.readlines():
        result2 = re.findall(‘[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}‘, line)
        if not result2  == []:
            print result2[0]
            result = result2[0] + ‘\n‘
            with open(‘arr_ip.txt‘, ‘a+‘) as w:
                w.write(result)

原文件

Array
(
    [2016-08-12] => Array
        (
            [DATE] => 2016-08-12
            [IPS] => Array
                (
                    [0] => 10.26.31.151
                    [1] => 140.206.255.42
                    [2] => 223.104.5.206
                    [3] => 112.65.191.177
                    [4] => 115.209.105.152
                )
        )
    [2016-08-13] => Array
        (
            [DATE] => 2016-08-13
            [IPS] => Array
                (
                )
        )
    [2016-08-14] => Array
        (
            [DATE] => 2016-08-14
            [IPS] => Array
                (
                    [0] => 211.161.245.47
                )
        )
    [2016-08-15] => Array
        (
            [DATE] => 2016-08-15
            [IPS] => Array
                (
                    [0] => 10.26.31.151
                    [1] => 223.104.5.205
                    [2] => 123.245.20.146
                    [3] => 223.104.5.194
                    [4] => 182.86.147.238
                )
        )
    [2016-08-16] => Array
        (
            [DATE] => 2016-08-16
            [IPS] => Array
                (
                    [0] => 10.26.31.151
                )
        )
    [2016-08-17] => Array
        (
            [DATE] => 2016-08-17
            [IPS] => Array
                (
                    [0] => 10.26.31.151
                    [1] => 223.104.5.234
                )
        )
    [2016-08-18] => Array
        (
            [DATE] => 2016-08-18
            [IPS] => Array
                (
                    [0] => 10.26.31.151
                    [1] => 223.104.175.108
                    [2] => 123.184.233.89
                    [3] => 182.200.62.255
                    [4] => 223.104.5.201
                )
        )
    [2016-08-19] => Array
        (
            [DATE] => 2016-08-19
            [IPS] => Array
                (
                    [0] => 10.26.31.151
                    [1] => 223.104.5.235
                    [2] => 223.104.175.65
                )
        )
    [2016-08-20] => Array
        (
            [DATE] => 2016-08-20
            [IPS] => Array
                (
                    [0] => 223.104.5.201
                )
        )
    [2016-08-21] => Array
        (
            [DATE] => 2016-08-21
            [IPS] => Array
                (
                )
        )
    [2016-08-22] => Array
        (
            [DATE] => 2016-08-22
            [IPS] => Array
                (
                    [0] => 10.26.31.151
                    [1] => 112.65.189.136
                    [2] => 218.87.170.214
                )
        )
    [2016-08-23] => Array
        (
            [DATE] => 2016-08-23
            [IPS] => Array
                (
                    [0] => 10.26.31.151
                )
        )
    [2016-08-24] => Array
        (
            [DATE] => 2016-08-24
            [IPS] => Array
                (
                    [0] => 140.206.88.69
                    [1] => 10.26.31.151
                    [2] => 210.13.91.179
                    [3] => 223.104.5.226
                )
        )
    [2016-08-25] => Array
        (
            [DATE] => 2016-08-25
            [IPS] => Array
                (
                    [0] => 10.26.31.151
                    [1] => 180.171.102.48
                )
        )
    [2016-08-26] => Array
        (
            [DATE] => 2016-08-26
            [IPS] => Array
                (
                    [0] => 180.171.102.48
                    [1] => 10.26.31.151
                    [2] => 223.104.5.238
                    [3] => 140.206.255.11
                )
        )
    [2016-08-27] => Array
        (
            [DATE] => 2016-08-27
            [IPS] => Array
                (
                    [0] => 180.171.102.48
                    [1] => 118.133.213.58
                    [2] => 140.207.23.150
                )
        )
    [2016-08-28] => Array
        (
            [DATE] => 2016-08-28
            [IPS] => Array
                (
                    [0] => 118.133.213.58
                    [1] => 140.206.89.196
                    [2] => 180.171.102.48
                )
        )
    [2016-08-29] => Array
        (
            [DATE] => 2016-08-29
            [IPS] => Array
                (
                    [0] => 10.26.31.151
                    [1] => 106.121.3.154
                    [2] => 182.86.195.46
                )
        )
    [2016-08-30] => Array
        (
            [DATE] => 2016-08-30
            [IPS] => Array
                (
                    [0] => 10.26.31.151
                    [1] => 58.247.55.122
                    [2] => 140.206.89.91
                    [3] => 116.235.22.234
                    [4] => 140.207.21.190
                    [5] => 180.171.100.197
                )
        )
    [2016-08-31] => Array
        (
            [DATE] => 2016-08-31
            [IPS] => Array
                (
                    [0] => 10.26.31.151
                    [1] => 116.228.29.218
                    [2] => 180.171.68.2
                )
        )
    [2016-09-01] => Array
        (
            [DATE] => 2016-09-01
            [IPS] => Array
                (
                    [0] => 10.26.31.151
                    [1] => 112.64.189.141
                    [2] => 180.171.68.2
                    [3] => 223.104.5.197
                )
        )
    [2016-09-02] => Array
        (
            [DATE] => 2016-09-02
            [IPS] => Array
                (
                    [0] => 10.26.31.151
                )
        )
    [2016-09-03] => Array
        (
            [DATE] => 2016-09-03
            [IPS] => Array
                (
                )
        )
    [2016-09-04] => Array
        (
            [DATE] => 2016-09-04
            [IPS] => Array
                (
                    [0] => 114.91.48.125
                )
        )
    [2016-09-05] => Array
        (
            [DATE] => 2016-09-05
            [IPS] => Array
                (
                    [0] => 10.26.31.151
                    [1] => 59.63.13.36
                    [2] => 223.104.5.196
                    [3] => 114.91.48.125
                )
        )
)
时间: 2024-12-23 20:24:35

Python 从文件中筛选出ip 正则表达(re)的相关文章

python把文件中的邮箱分类 保存到相应的文件里面

python把文件中的邮箱分类 保存到相应的文件里面(测试数据100W数据时间10秒) #coding:utf-8 import time import linecache def readfile(file):     #读取数据     list_dict = {}     file_data =  [ x.replace('\n','') for x in linecache.getlines(file) if '@' in x ]     #把后缀名组成字典中的keys,按照要求把文件中

Python工程文件中的名词解释---Module与Package的区别

当我们在已有的Python工程文件中创建新的内容是,通常会有两种类型文件供你选择---Module和Package,对于初学者来说会搞不清楚这两种文件直接的关系.这里就来解释一下这两者之间的关系. Module简介:  中文翻译成"模块",所谓的模块其实就是能够独立的完成一组任务的代码集.在Python里面Module一般就是一个独立的.py文件(有时候也可能是多个). Package简介:  中文翻译成"包",在Python中,Package就相当于多个Modul

Python 同一文件中,有unittest不执行“if __name__ == '__main__”,不生成HTMLTestRunner测试报告的解决方案

1.问题:Python中同一个.py文件中同时用unittest框架和HtmlReport框架后,HtmlReport不被执行. 2.为什么?其实不是HtmlReport不被执行,也不是HtmlReport不生成测试报告,是因为if __name__ == '__main__'中的代码根本没执行好嘛! 3.解决方案的来源:因为最开始我的main代码中没有写print打印语句.没有生成HTML报告,我也在网上找了很久的方法,后来才怀疑是不是没有运行main方法,于是写了个print语句,果然没有运

利用Python从文件中读取字符串(解决乱码问题)

首先声明这篇学习记录是基于python3的. python3中,py文件中默认的文件编码就是unicode,不用像python2中那样加u,比如u'中文'. 不过在涉及路径时,比如C:\Users\Administrator\Desktop\StudyNote\Python,还是要加r. eg:r'C:\Users\Administrator\Desktop\StudyNote\Python'. 因为\是转义符,想输出'\'得写成'\\'才可以.加了r就可以让python自动处理字符串,最终的字

python 修改文件中的内容

在python的文件操作中,是没有办法对文件中具体某行或者某个位置的内容进行局部的修改的,如果需要对文件的某一行内容进行修改,可以先将文件中的所有的内容全部读取出来,再进行内容判断,是否是需要修改的内容,如果是就替换内容,并且将修改替换过的内容和没有修改的内容全部写入到新的文件中. # 打开旧文件 f = open('file_text.txt','r',encoding='utf-8') # 打开新文件 f_new = open('file_text_bak.txt','w',encoding

Python从文件中读取数据

一.读取整个文件内容 在读取文件之前,我们先创建一个文本文件resource.txt作为源文件. resource.txt my name is joker, I am 18 years old, How about you? 如何读取文件全部内容,我们编写到reader.py文件中. reader.py 1 with open('resource.txt') as file_obj: 2 content = file_obj.read() 3 print(content) 4 需要注意的是需要

python对文件中的关键词查找替换,实现自动获取配置

1.目的 想对update_variable.py文件中的配置进行修改,数据通过系统接口自动获取 update_variable.py my_name='null' my_age=18 2.代码 update_file.py # name=phyger # line='my name: {name}' # new=line.replace('{name}',name) # print(new) # cur_abspath=os.path.abspath(__file__) import os c

python 读写文件中 w与wt ; r与rt 的区别

w,r,wt,rt都是python里面文件操作的模式. w是写模式,r是读模式. t是windows平台特有的所谓text mode(文本模式),区别在于会自动识别windows平台的换行符. 类Unix平台的换行符是\n,而windows平台用的是\r\n两个ASCII字符来表示换行,python内部采用的是\n来表示换行符. rt模式下,python在读取文本时会自动把\r\n转换成\n. wt模式下,Python写文件时会用\r\n来表示换行.

用python 替换文件中的git地址

有个需求要替换文件中git地址,要替换成的git地址是一个变量 本来想用sed替换但是git地址中有斜杠符号 需要转义,提前知道还好弄,如果是变量就不好处理了 #!/usr/bin/python3 # -*- coding: utf-8 -*- #替换git地址 import os git_url = os.environ.get('git_url') git_old = os.environ.get('git_old') f = open('/tmp/oc_export.json','w',e