将IP地址列表写入文本文件 - Python 2.7

时间:2015-08-05 17:46:39

标签: python regex python-2.7 text

我正在解析auth.log中的所有IP地址。我有以下脚本来解析IP地址,它似乎工作正常(或至少它捕获IP地址)。

import re 

authLog = open("auth.log", "rb")
string = authLog.read()

ipAddress = re.findall(r"[0-9]+(?:\.[0-9]+){3}", string)

print ipAddress

我想要做的是将IP地址写入文本文件,每个IP都有自己的行。即

192.168.1.1
192.168.1.1
192.168.1.1
192.168.1.1 
etc...

这意味着我需要摆脱python和逗号的引号。现在它只是以这种格式打印IP地址:' 192.168.1.1',' 192.168.1.1',' 192.168.1.1',&# 39; 192.168.1.1'等...

执行此操作的最佳方法是什么?一如既往,您的帮助会非常受欢迎。

2 个答案:

答案 0 :(得分:7)

首先,我建议为ipAddress选择一个不同的名称。 findall返回字符串列表,列表名称传统上是复数。 ipAddresses怎么样?

您可以使用join将字符串列表组合到单个分隔的字符串中。您可以使用换行符作为分隔符。例如:

with open("output.txt", "w") as file:
    file.write("\n".join(ipAddresses))

答案 1 :(得分:2)

我不知道为什么会有这么多仇敌和巨魔投票给正常的问题。我赞成你抵消。

在python中做换行通常你想使用

\n

然而,最好的方法是使用' for'声明

 for val in ipAddress:
      print(val + '\n')

这将在自己的行上打印每个ipAddress