从Python

时间:2016-04-30 19:43:57

标签: python python-2.7 file parsing io

文件是这样的:

1 118 1
1 285 3
...
39861 27196 5

所以,我想通过将数字存储在变量中来解析文件,因为我知道apriori每行包含三个整数 * ,我应该怎么做?

这是我的尝试:

f = open(fname, 'r')
no_of_headers = 3
for i, line in enumerate(f, no_of_headers):
  print line

这里应该修改为读取到a,b和c,而不是读入行,因为我们知道每行都有三个数字!

*

中的sstream相同

1 个答案:

答案 0 :(得分:1)

只需使用Python的(有限的)模式识别语法:

for i, line in enumerate(f, no_of_headers):
    a,b,c = line.strip().split() # splits the line by whitespace

这会将分割线的每个元素分别分配给abc。由于每行包含三个元素,a映射到第一个元素,b映射到第二个元素,c映射到第三个元素。