在Python中将字符串(具有科学计数法)转换为int
我正在尝试将一组字符串从txt文件转换为列表中的int。我能够找到一个不错的代码片段来返回每一行,然后我尝试将其转换为int。问题是数字采用科学计数法,并且出现以下错误:ValueError:int()的无效文字,基数为10:‘3.404788e-001’。
这是我一直在处理的代码
data = []rawText = open ("data.txt","r")
for line in rawText.readlines():
for i in line.split():
data.append(int(i))
print data[1]
rawText.close()
回答:
将float(i)
或decimal.Decimal(i)
用作浮点数,具体取决于保持精度对您的重要性。
float
将数字存储在机器精度的IEEE浮点数中,同时Decimal
保持完整的精度,但代价是速度较慢。
此外,您可以遍历打开的文件,而无需使用readlines()
。
列表理解可以满足您的所有需求:
data = [float(number) for line in open('data.txt', 'r')
for number in line.split()]
如果您确实只需要整数,则可以使用 int(float(number))
以上是 在Python中将字符串(具有科学计数法)转换为int 的全部内容, 来源链接: utcz.com/qa/419393.html