从文件中的特定行提取数据

时间:2015-02-25 15:18:32

标签: python python-2.7

编辑:对不起,措辞不好。

我所拥有的是具有各种行的文本文件,我想知道如何指定使用re.sub的行。例如,如果我想要第3行的一部分,我如何在第3行的内容中指向re.sub。

提供更多背景资料。该文件在每一行都有数据,如第0行=标题行,第1行=总读数,第2行=%读数。我将这些行中的数字分配给变量以供以后使用。

从文本文件中的特定行提取数据。使用以下代码......

for i, line in enumerate(textfile):
       print i, line

给我输出

0 line printed here
1 line printed here

计划使用re.sub()获取我想要的部分内容。但是我如何参考具体的行/文字。想的就是......

target = ""

for i, line in enumerate(textfile):
       if i == 1:
           target = re.sub(r"line (printed) here", r"\1", line) 

但那不太正确

2 个答案:

答案 0 :(得分:1)

如果我找对你,你只想从选择性行中提取数据,比如(1, 4, 5, 9)

在这种情况下,请执行:

for i, line in enumerate(textfile):
    if i in (1, 4, 5, 9):
        target = re.sub(r"line (printed) here", r"\1", line) 

请注意,枚举将从索引0开始,因此文件的第一行将对应于索引0,索引1的文件的第2行,依此类推。

答案 1 :(得分:0)

假设您的问题只是如何在特定行上使用re.sub(),您可以使用类似(对于您想要的行)的内容。也许您的错误是您忘记打开文件。

myfile = open("textfile")

    for i, line in enumerate(myfile):
        if i == 1:
            # this is your second line
            target = re.sub(r"line (printed) here", r"\1", line) 
        elif i == 6:
            # this is your seventh line

        elif i > 100:
            break

    myfile.close()