使用python从另一个文件中读取一个数字

时间:2016-11-21 12:28:15

标签: python parsing numbers

我正在从文件p2.txt中读取一个数字。这个文件只包含1个数字,这是一个整数,比方说10。

test_file = open('p2.txt', 'r') 
test_lines = test_file.readlines() 
test_file.close() 
ferNum= test_lines[0] 
print int(ferNum) 

但是,我收到错误

print int(ferNum)
ValueError: invalid literal for int() with base 10: '1.100000000000000000e+01\n'

我可以看到它正在考虑它只是一条线。如何将该数字解析为变量?有什么建议?问候

1 个答案:

答案 0 :(得分:3)

问题在于即使数字的是整数(11),它也用科学记数法表示,因此您必须将其读作float第一

>>> float('1.100000000000000000e+01\n')
11.0

>>> int('1.100000000000000000e+01\n')
Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    int('1.100000000000000000e+01\n')
ValueError: invalid literal for int() with base 10: '1.100000000000000000e+01\n'

您可以在此之后首先转换为float然后转换为int

>>> int(float('1.100000000000000000e+01\n'))
11