正则表达式输出到文本文件

时间:2018-07-15 11:49:54

标签: python regex

我正在尝试编写将regex输出(IP地址)写入文本文件的python脚本。脚本将在每次运行时重写文件。有什么更好的方法吗?

mov $1, (%rsi)

1 个答案:

答案 0 :(得分:1)

我稍微重写了代码。

  1. 我将正则表达式更改为使用{3},这样您就不必重复相同的模式很多次了。
  2. 我添加了os.path.exists来检查文件是否已经存在。我认为这就是您想要的,即使不删除该if。如果文件已存在,则不写
  3. 当您似乎正在写文件时,我将两个with组合在一起,继续打开文件以添加新行并没有多大意义。
  4. 出于可读性考虑,我将pattern重命名为ip_pattern,如果需要,可以将其改回。

代码:

import re, os

ip_pattern = re.compile(r'(?:\d{1,3}\.){3}\d{1,3}')

if not os.path.exists("iters.txt"):
    with open('test.txt', 'r') as rf, open('iters.txt', 'a') as wf:
        content = rf.read()
        matches = ip_pattern.findall(content)
        for match in matches:
            wf.write(match + '\n')