在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

回到顶部