python - 如何导出具有特定列数的文件的行
问题描述
我有一个文件,其中有数千行不同的列。文件类型是 .msh 文件,也可以使用文本阅读器打开。所有数据也用空格分隔。我的文件的视图:
$MeshFormat
2.2 0 8
$EndMeshFormat
$Nodes
2929
1 26.66002035140991 0.75 1.25
2 71.57912731170654 0.75 98.75
3 71.57912731170654 29.25 98.75
...
现在,我想提取有 9 列的行。我尝试了以下代码,但它给了我每一行作为一个字符串,而不是整数或浮点数的分隔列:
with open('my_file') as f:
saved_lines = [line for line in f if len(line.split()) == 9]
然后,它给出:
'2675 4 2 0 1 25 27 1223 2073\n',
'2676 4 2 0 1 252 272 271 1904\n',
'2677 4 2 0 1 271 251 252 1904\n',
...
虽然我需要将结果作为值数组获取:
[[2675, 4, 2, 0, 1, 25, 27, 1223, 2073]
[2676, 4, 2, 0, 1, 252, 272, 271, 1904]
[2677, 4, 2, 0, 1, 271, 251, 252, 1904]
...]]
如果有人帮我解决这个问题,我将不胜感激。我很欣赏 numpy 或 pandas 中的任何解决方案。
解决方案
还有两个步骤:
- 拆分结果行
- 将结果转换为
numpy
数组:
import numpy as np
with open("my_file", "r") as f:
saved_lines = np.array([line.split() for line in f if len(line.split()) == 9])
print(saved_lines)
推荐阅读
- webkit - 为什么使用 Cairo 的 WebKit 在 Windows 上很慢?
- excel - 阅读表单时未更新内容链接的自定义文档属性
- laravel - Schema::create 与 Sql
- ios - 在 iOS (iPhone) 上强制向下滚动会导致固定元素消失
- amazon-web-services - Kafka Producer 中的 SSL 握手失败
- sql - 根据其他字段的值在 sql 查询的结果集中添加或删除列
- excel - 在立即窗口中执行...结束语句,Excel VBA
- json - 按布尔值过滤节点
- java - 如何修复“数组类型的方法不匹配(int [],int [])未定义”
- html - 从离子模板中的方法获取返回值