2016-11-21 147 views
0

我正在从文件p2.txt中读取一个数字。此文件contrains只有1号是一个整数可以说10使用python从另一个文件中读取单个数字

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' 

我可以看到,它正在考虑它就像一条线。我怎样才能把这个数字解析成一个变量?有什么建议么?至于

+3

你应该包括输入,否则你会收到狂野的猜测 – JuniorCompressor

回答

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 
相关问题