我有一个文本文件,其中包含如下表格。来自其他文本的部分对我来说不是很感兴趣。
TMP [%] [KT] [1/dm] [SF]
1 0.10020 -0.0000 -60.0 0.0000
2 14.12826 0.0000 0.0 0.0000
3 4.00802 -120.3636 -6.0 191.5646
4 4.80962 0.0000 0.0 0.0000
.....
我想只提取文本的这一部分,只提取前3列。我写了一个类似的代码:
import codecs
f = codecs.open("dmp.txt", "r",'utf-16-le')
fr = f.readlines()
f.close()
for line in fr:
if line.startswith("TMP")...
但是,我无法弄清楚如何逐列读取此数据,而只能读取前三列。有什么想法吗?
答案 0 :(得分:0)
for line in fr:
v = line.split()
print " ".join(v[:3])
给出:
TMP [%] [KT]
1 0.10020 -0.0000
2 14.12826 0.0000
3 4.00802 -120.3636
4 4.80962 0.0000
答案 1 :(得分:0)
您可以使用正则表达式:
import codecs
import re
f = codecs.open("dmp.txt", "r",'utf-16-le')
fr = f.readlines()
f.close()
for line in fr:
if not line.startswith('TMP'):
print re.findall('-?[0-9]+\.?[0-9]*', line)[:3]
这将输出:
['1', '0.10020', '-0.0000']
['2', '14.12826', '0.0000']
['3', '4.00802', '-120.3636']
['4', '4.80962', '0.0000']
答案 2 :(得分:0)
with open("dmp.txt") as f:
f.next()
for x in range(4):
lines += f.next().split()[0:3]
print lines
['1', '0.10020', '-0.0000', '2', '14.12826', '0.0000', '3', '4.00802', '-120.3636', '4', '4.80962', '0.0000']