【问题标题】:Write List of IP Addresses to text file - Python 2.7将 IP 地址列表写入文本文件 - Python 2.7
【发布时间】:2015-08-05 17:46:38
【问题描述】:

我正在从 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'、'192.168.1.1' 等...

执行此操作的最佳方法是什么?与往常一样,您的帮助将不胜感激。

【问题讨论】:

  • 老实说,如果您要对人们投反对票,请发布原因

标签: python regex python-2.7 text


【解决方案1】:

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

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

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

【讨论】:

  • 工作就像一个魅力。我确实改变了名字所以它的复数。我现在必须养成这些好习惯。
【解决方案2】:

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

在python中做换行通常你想用

\n

不过,最好的方法是使用“for”语句

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

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

【讨论】:

  • 抱歉应该是'\n'
  • @Nefarii 我不知道为什么它被否决但我非常感谢你的帮助。
猜你喜欢
  • 2017-12-15
  • 2011-05-25
  • 2012-12-01
  • 1970-01-01
  • 2020-04-20
  • 1970-01-01
  • 2014-11-22
  • 2013-02-18
  • 1970-01-01
相关资源
最近更新 更多