我的 .txt 文件如下所示:
=== Predictions on test data ===
inst# actual predicted error prediction (6)
1 1:1 6:6 + 0.753 (0)
2 1:1 6:6 + 0.753 (0)
3 1:1 5:5 + 0.975 (2)
4 1:1 5:5 + 1 (11)
5 1:1 5:5 + 0.992 (0)
6 1:1 6:6 + 0.941 (0)
7 1:1 3:3 + 0.857 (0)
8 1:1 2:2 + 0.967 (0)
9 1:1 2:2 + 1 (0)
10 1:1 5:5 + 1 (97)
11 1:1 5:5 + 0.956 (0)
12 1:1 5:5 + 1 (1)
13 1:1 5:5 + 0.958 (59)
14 1:1 5:5 + 0.969 (0)
15 1:1 5:5 + 0.984 (0)
16 1:1 4:4 + 0.8 (0)
17 1:1 5:5 + 1 (141)
18 1:1 5:5 + 0.974 (5)
如何仅读取“预测”列中的第一个值?特别是,数值出现在每行的第 26 列(比如说)?
我写了一个Python脚本:
f = open("out_grasp_R.txt", 'r')
f.readline()
f.readline()
f.readline()
for line in f:
f.read(25)
print(f.read(1))
f.readline()
我收到一条错误消息,指出“混合迭代和读取方法会丢失数据”
我想要一个像这样的数组:
[6,6,5,....]
我该怎么办?
最佳答案
从第三列中拆分并获取第一个元素更简单
with open("out_grasp_R.txt", 'r') as f:
next(f)
print([line.split()[2][0] for line in f])
['6', '6', '5', '5', '5', '6', '3', '2', '2', '5', '5', '5', '5', '5', '5', '4', '5', '5']
如果您确定间距,请使用 print([line[21] for line in f])
,它对应于您根据输入文件所需的数据。除非您考虑空格列,否则您实际上有六列。
关于python - 如何从文本文件中只读取第 26 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29901306/