Python:需要根据文本字符串中的2个或更多匹配项输出到文件

Python:需要根据文本字符串中的2个或更多匹配项输出到文件,python,scripting,Python,Scripting,我是Python新手,正在尝试根据文本文件的两个条件找到一种写入文件的方法: 在给定文本中,其中一行必须与我的搜索完全匹配。位置和价值总是相同的 如果满足上述条件1,且文本中的已知位置也存在X值(待定义\可以更改),则打印条件1中的匹配文本和带有10个永不更改的即时字符的X值 因此,从我在本网站上看到的另一个示例中给出的文本来看: textInput = """\ I'm trying to have my program grab every fifth word from a text fi

我是Python新手,正在尝试根据文本文件的两个条件找到一种写入文件的方法:

  • 在给定文本中,其中一行必须与我的搜索完全匹配。位置和价值总是相同的

  • 如果满足上述条件1,且文本中的已知位置也存在X值(待定义\可以更改),则打印条件1中的匹配文本和带有10个永不更改的即时字符的X值

  • 因此,从我在本网站上看到的另一个示例中给出的文本来看:

    textInput = """\
    I'm trying to have my program grab every fifth word from a text file and
    place it in a single string. For instance, if I typed "Everyone likes to
    eat pie because it tastes so good plus it comes in many varieties such
    as blueberry strawberry and lime" then the program should print out
    "Everyone because plus varieties and." I must start with the very first
    word and grab every fifth word after. I'm confused on how to do this.
    Below is my code, everything runs fine except the last 5 lines."""
    
    在本例中,我希望将以下内容写入文件,但前提是两者都存在:

    "place it in a single string. For instance, if I typed "Everyone likes to" 
    

    “蓝莓草莓和酸橙”

    “石灰”一词可能会变为未知的、变化的值

    归根结底,我有一大堆日志文件要处理。如果一个IP地址存在于文件中的某个特定位置,我希望该IP(未知)、10个继续字符以及一个文本字符串始终存在于IP的几行中。这两个都要写入文件


    我了解了如何打开/关闭文件,以及如何将条目等写入新文件中,以获得特定的短语,但如果满足两个或多个条件的特定组合,则无法将条目发送到文件中

    我认为最好的方法是读取日志文件,然后使用正则表达式查找日志中的所有ip地址

    ip = re.compile("^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$")
    ip = re.findall(ip, yourLogFile)
    
    然后,您将使用操作系统在您的ip已存在文件的文件夹中循环浏览每个文件

    import os
    
    ipAlreadyOnFile = []
    for root, dirs, files in os.walk(r'C:\yourDirectory'):
        for file in files:
            ipAlreadyOnFile.append(file)
    
    然后您可以找到两个列表之间的差异:

    newIp = list(set(ip) - set(ipAlreadyOnFile))
    

    现在,您的newIp列表中只有新的ip地址可添加到您的目录或执行其他操作

    谢谢你的回答,克里斯,但这并不能完全解决我的问题。我有数百个条目的日志。每个条目由18行组成。每行以回车结束,由单词和数字组成。这些条目的一个子集具有与其关联的IP地址。我试图找到那些带有IP的条目以及条目中不同位置指示的另一个相关条件。将日志文件与其他日志文件进行比较并不能获得所需的信息。