从Text文件中提取一定数量的行 - Python

时间:2016-09-22 10:53:14

标签: python text

让我们假设我有一个文本文件,其中包含以下内容:(每行以数字开头,并包含我需要的信息)

  

1 325315

     

2 234265

     

3 345345

     

4 234234

     

5 373432

     

6 436721

     

7 325262

     

8 235268

我如何提取3号之后和6号之前的线?同时保持同一行上的其他数据。

我有一个非常大的文本文件~1000行,我需要提取从300到800的行。要么提取或删除我不需要的行,要么两种方式都可以。

感谢您的帮助

3 个答案:

答案 0 :(得分:0)

这样的东西?

def extract(file, fr, to):
    f = open(file, "r+")

    [next(f) for i in range(fr)]

    return [f.readline() for i in range(to - fr)]

或仅提取第二列

    return [f.readline().split()[1] for i in range(500)]

输出:

extract("file",3,5)

['4 234234\n', '5 373432\n']

答案 1 :(得分:0)

这样做。

l = [line for line in (open('xyz.txt','r')).readlines() if int(line.split()[0]) > 3 and int(line.split()[0]) < 6 ]

输出:(输出将是3到6之间的行)

C:\Users\dinesh_pundkar\Desktop>python c.py
['4 234234\n', '5 373432\n']

C:\Users\dinesh_pundkar\Desktop>

答案 2 :(得分:0)

假设索引不是顺序的

outList=[]
with open('somefile') as f:
    for line in f:
        a=line.split()
        if 3<int(a[0])<6:
            outlist.append(a[1]) # or append(line), append(a) depending on needs

或者只使用numpy.loadtxt并使用数组方法。