让我们假设我有一个文本文件,其中包含以下内容:(每行以数字开头,并包含我需要的信息)
1 325315
2 234265
3 345345
4 234234
5 373432
6 436721
7 325262
8 235268
我如何提取3号之后和6号之前的线?同时保持同一行上的其他数据。
我有一个非常大的文本文件~1000行,我需要提取从300到800的行。要么提取或删除我不需要的行,要么两种方式都可以。
感谢您的帮助
答案 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
并使用数组方法。