【问题标题】:Parsing multiple values from a file in Python在 Python 中解析文件中的多个值
【发布时间】:2016-05-01 05:33:18
【问题描述】:

文件是这样的:

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

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


这是我的尝试:

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

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


*喜欢sstream中的

【问题讨论】:

  • @BhargavRao,我不能使用 Pandas:/ 第一个链接很好,但我想阅读前三行,而不是跳过它们!不过谢谢:)
  • 您是否阅读了第一个链接中的其他答案?当您使用 readlines 时,如果您尝试在那里使用切片语法,那么一些答案是有效且有用的。或者,enumerate 的答案在那里也很有帮助。
  • @BhargavRao,我目前正在这样做,是的,enumerate 应该会派上用场。如果有的话,我会用更好的尝试来更新我的问题。至于readlines,这不是必须的,所以如果有其他方法,请带上它..people :)
  • @BhargavRao 非常感谢您提供的链接。我现在可以缩小问题范围,放弃您的建议解决的部分

标签: c++ python python-2.7 file parsing io


【解决方案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 映射到第三个元素。

【讨论】:

    猜你喜欢
    • 2016-11-12
    • 2011-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-04
    • 1970-01-01
    • 2020-05-19
    • 1970-01-01
    相关资源
    最近更新 更多