我有一个文本文件,它有 5 列和超过 200 万行,如下所示,
134 1 2 6 3.45388e-06
135 1 2 7 3.04626e-06
136 1 2 8 4.69364e-06
137 1 2 9 4.21627e-06
138 1 2 10 2.38822e-06
139 1 2 11 1.91216e-06
...
140 1 3 2 5.23876e-06
141 1 3 3 2.83415e-06
142 1 3 7 2.32097e-06
143 1 3 9 6.26283e-06
144 1 3 16 4.22556e-06
...
145 2 1 2 3.67182e-06
146 2 1 4 4.61481e-06
147 2 1 6 1.1703e-06
...
148 2 2 7 4.61242e-06
149 2 2 21 1.84259e-06
150 2 2 22 4.31435e-06
...
151 2 3 23 4.34518e-06
152 2 3 24 3.76576e-06
153 2 3 25 2.61061e-06
...
154 3 1 2 4.07107e-06
155 3 1 7 4.83971e-06
156 3 1 8 3.43919e-06
...
157 3 2 29 6.27991e-06
158 3 2 30 7.44213e-06
159 3 2 31 9.56985e-06
...
160 3 3 32 1.38377e-05
161 3 3 33 1.62724e-05
162 3 3 34 9.85653e-06
...
第二列显示每层的数量,在每一层中我有一个矩阵,其中第 3 列和第 4 列是该层中的行数和列数,最后一列是我的数据首先我想设置一个条件,如果第二列相等到一个数字(例如 3),在另一个文件中打印此条件的所有行,我正在使用以下代码执行此操作:
with open ('C:\ Python \ projects\A.txt') as f, open('D:\ Python \New_ projects\NEW.txt', 'w') as f2:
# read the data from layer 120 and write these data in New.txt file
for f in islice (f,393084, 409467):
f2.write(f)
a = np.loadtxt('D:\ Python \New_ projects\NEW.txt
但问题是,对于每一层,我必须转到文件并找到每一层的第一行和最后一行并将其放入 islice ,这需要很长时间,因为文件太大了我能做什么我只是说 column[2] = 4 保存新文本中的行??
***** 之后我需要另一个条件,即对于 Column[2] = 4 ,如果 20 <=column[3] <= 50 和
80 <=column[4] <= 120 --> 将这些行保存在另一个文件..