如何使用Python从格式化文件中提取(切片)固定大小的2D数组?

2024-03-28 14:46:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文件,其中包含一组相互堆叠的多个二维阵列,并由字符串分隔。这个文件是由另一个软件生成的,我无法控制它的输出。 我想使用“for”或“while”循环将这些集合分隔成单独的文件

  1. 循环将查找字符串的起始位置("x" "y"
  2. 复制数据直到下一个字符串开始(副本中不包括第二个字符串)
  3. 创建新文件并保存复制的数据
  4. 继续此操作,直到所有数据都被复制出来

这是一个数据示例,它只包含2组数据,可以手动完成,但我有一个包含10组数据的文件:

"x" "y"
1e+06   28.1647
1.77828e+06 28.1647
3.16228e+06 28.1646
5.62341e+06 28.1646
1e+07   28.1645
1.77828e+07 28.1641
3.16228e+07 28.1629
5.62341e+07 28.1591
1e+08   28.1471
1.77828e+08 28.1095
3.16228e+08 27.9924
5.62341e+08 27.6412
1e+09   26.6846
1.77828e+09 24.5621
3.16228e+09 21.0562
5.62341e+09 16.5839
1e+10   11.599
1.77828e+10 6.18774
3.16228e+10 0.10613
5.62341e+10 -6.99352
1e+11   -15.4214
1.77828e+11 -25.7501
3.16228e+11 -40.0745
5.62341e+11 -58.1688
1e+12   -66.9569

"x" "y"
1e+06   28.1784
1.77828e+06 28.1784
3.16228e+06 28.1784
5.62341e+06 28.1783
1e+07   28.1782
1.77828e+07 28.1778
3.16228e+07 28.1767
5.62341e+07 28.173
1e+08   28.1614
1.77828e+08 28.1249
3.16228e+08 28.0114
5.62341e+08 27.6705
1e+09   26.738
1.77828e+09 24.6535
3.16228e+09 21.1808
5.62341e+09 16.7247
1e+10   11.7433
1.77828e+10 6.3266
3.16228e+10 0.230876
5.62341e+10 -6.88885
1e+11   -15.3386
1.77828e+11 -25.689
3.16228e+11 -40.0328
5.62341e+11 -58.2147
1e+12   -67.1267