python - 对数据块执行操作
问题描述
我有一个巨大的文本文件,其中包含我想以新格式重新排序的数据。
*******unwanted headers********
results
-
1 2 3 4 3 6 7 8
1 2 3 4 2 6 7 8
1 2 3 4 1 6 7 8
1 2 3
-
-
1 2 3 4 3 6 7 8
2 2 3 4 2 6 7 8
1 2 3
-
2 2 3 4 3 6 7 8
1 2 3 4 2 6 7 8
1 2 3
1 2 3
-
输入格式:N、X、Y、E、T、x、y、z
我想做以下事情:
- 忽略标题行
- 循环每个块(一个块是长度 = 8 的任何连续行)
- 将 T 列从低到高排序
- 查看 N 列并检查第一行中是否有 1,然后是下一行中的 2(仅适用于长度为 8 的行)
- 得到两行的z, y, x, E
- 对每个块重复步骤 3、4 和 5
- 输出格式应为:z1 y1 x1 E1 z2 y2 x2 E2
这意味着我的代码不应该报告前两个块的结果,因为它们不满足我设置的条件,但第三个块会报告结果。
注意:数据是浮点数,而不是整数。
我已经尝试过这段代码,但它不起作用:
import fileinput
for Line in fileinput.input():
Line = Line.split()
if Line == '- ':
continue
if len(Line) == 8:
'apply the conditions'
continue
if len(Line) != 8:
break
解决方案
推荐阅读
- php - 如何使用 Laravel 8 使用存储过程进行用户输入
- search - solr 加入多租户数据
- reactjs - 在 Reactjs 中实现硬编码 Auth 的问题
- python - 如何在 python 中使用 z3c.rml 生成 PDF 报告
- zkemkeeper - ZKEMKeeper 没有禁用用户
- python - 导入 matplotlib 时导致 Python 出错的原因是什么?
- python - 用于变量 += 用户输入的 for 循环
- java - Jenkins 声纳报告生成失败
- postman - 如何使用我的帖子并离线登录您的帐户
- c# - 使用 Sqlite 命令 C# foreach 进入 foreach