多个文件中的正则表达式,其中匹配结果可以跨两个不同的文件

2024-10-05 14:25:37 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有一种方法可以跨多个文件(在本例中是日志文件)执行regex,其中正则表达式可能在一个文件中匹配开始条件,在下一个文件中按文件名顺序匹配结束条件?你知道吗

我需要匹配日志文件中的事件,其中事件的开始理论上可以接近一个文件的结尾,而事件的结束可以接近下一个文件的开始。你知道吗

到目前为止,我一直在读取所有的文件,并将它们连接成一个字符串并在其中进行regexing——然而,我最终遇到了这样一种情况:这样做会导致MemoryError(一天的日志文件总量似乎在800MB左右)。你知道吗

我想知道是否有一种方法可以直接跨文件执行此操作,这样我就不必在内存中的变量中维护所有内容了?或者,如果有另一种方法可以提高内存效率?你知道吗

注意:操作系统是Windows7


Tags: 文件方法内存字符串顺序文件名结尾事件
2条回答

按顺序一次处理一个文件,但当您找到事件开始行时,请记下文件和看到它的行。当你找到事件的终点线,你就会知道你需要做的一切。你知道吗

如果您使用的是类Unix操作系统(Linux、macOS),则可以使用系统工具。cat *.log | grep 'REGEX'。如果需要,可以使用subprocess.run()从Python脚本运行它。你知道吗

相关问题 更多 >