搜索文本文件并在所有实例之间显示数据

时间:2014-10-09 16:07:33

标签: python regex

非常陌生的Python。我开始写一个PHP脚本来查找txt文件中出现的所有2个字符串,但它使用的内存太多,所以我读Python会更好。

基本上我需要做的是: - 导入一个txt文件 - 浏览它并返回下面标签之间的所有数据 - 删除任何重复 - 输出结果

我正在寻找的位看起来像这样:

------DATA--------------------------------------------------
DATA TO SHOW
------------------------------------------------------------

当然,输出的重要位是DATA TO SHOW部分。

任何帮助将不胜感激:)

由于

更新-----------------------

import re

inputFile = open("small.txt", "r")
output = open("result.txt", "w")


searchStart = "----- ASSERT --------------------------------------------------------------------------------"
searchEnd = "---------------------------------------------------------------------------------------------"


match = re.findall('^----- ASSERT --------------------------------------------------------------------------------\n(.*?)---------------------------------------------------------------------------------------------', inputFile.read(), re.MULTILINE)
print match,

任何想法如何让它显示所有行,直到它到达searchEnd标记?示例数据:

----- ASSERT --------------------------------------------------------------------------------
MORE
INFO
THAT
I
NEED
TO
GET
FROM
THE
FILE
---------------------------------------------------------------------------------------------

1 个答案:

答案 0 :(得分:0)

php的一个例子(未经过测试,想法就在这里):

$handle = fopen("inputfile.txt", "r");
if ($handle) {
    $record = false;
    while (($line = fgets($handle)) !== false) {
        if ($line == '------DATA--------------------------------------------------') {
            $record = true;
            $temp = '';
        } elseif ($record) {
            if ($line == '------------------------------------------------------------') {
                $record = false;
                $results[] = $temp;
                $temp = '';
            } else $temp .= $line;
        }
    }
} else {
    echo 'Gargoyl, the file can\'t be opened!';
} 
fclose($handle);
print_r($results);