我有数百个字符串都具有相同的格式 – 2个整数后跟三个浮点数.一个例子:
1 10 1.2345 5.4321 10.5647
我只想逐一取出这些字符串并将它们解析为各自的整数和浮点数.我可以想到一些方法来做到这一点,但我希望python会有一些优雅的东西,它是用于写作的str.format的反转.这似乎是非常基本的功能,所以如果我问的是已经回答的问题,我很抱歉,但我无法在任何地方找到解决方案.有什么想法吗?谢谢.
最佳答案 我觉得你最好用numpy的genfromtxt或loadtxt:
import numpy as np
import StringIO
s = """1 10 1.2345 5.4321 10.5647
2 14 434.35 345.34 1000000
3 8 253.235 2.53 .002345"""
f = StringIO.StringIO(s)
data = np.genfromtxt(f, names = 'id, count, x, y, z', dtype=[int,int,float,float,float])
这为您提供了这些内容的数组,因此可以访问第一行
data[0]
#(1, 10, 1.2345, 5.4321, 10.5647)
或者所有第二列:
data['count']
#array([10, 14, 8])
顺便说一下,这会将float列中的一个整数转换为float,以防你的一个浮点数恰好是一个整数.