我正在尝试将一组字符串从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()
Run Code Online (Sandbox Code Playgroud)
tza*_*man 19
使用float(i)或decimal.Decimal(i)表示浮点数,具体取决于维护精度对您的重要程度.
float将数字存储在机器精度IEEE浮点数中,同时Decimal保持完全准确性,代价是速度较慢.
此外,您可以迭代打开的文件,您不需要使用readlines().
单个列表理解可以完成您所需的一切:
data = [float(number)
for line in open('data.txt', 'r')
for number in line.split()]
Run Code Online (Sandbox Code Playgroud)
如果你真的只需要整数,你可以使用 int(float(number))
| 归档时间: |
|
| 查看次数: |
23747 次 |
| 最近记录: |