繁体   English   中英

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

[英]extracting a set amount of lines from a Text file - Python

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

1 325315

2 234265

3 345345

4 234234

5 373432

6 436721

7 325262

8 235268

例如,如何提取数字3之后和6之前的行? 同时将其他数据保持在同一行上。

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

谢谢你的帮助

像这样吗

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']

这样吧

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>

假设索引不是顺序的

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并使用数组方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM