我在Python 3.7中有一个问题。我正在打开一个文本文件(input.txt),并从该文本文件的各行中创建变量。例如,我的文本文件如下所示:
Case1
P
1.00E+02
5.
我需要创建变量,以便:
title = "Case1"
area = "P"
distance = 100
factor = 5
到目前为止,这就是我所拥有的:
f = open('C:\\input.txt',"r")
title = f.readline().strip()
area = f.readline().strip()
distance = f.readline().strip()
factor = f.readline().strip().strip(".")
f.close
print(title)
print(area)
print(distance)
print(factor)
结果为:
Case1
P
1.00E+02
5
如何使距离变量显示为100,而不是1.00E + 02?
我发现下面的链接认为这会有所帮助,但无法从那里解决我的问题。这是我的大型程序中的一小部分,已简化,但是如果在这里工作,它将满足我的需求。我的程序需要打开一个生成的文本文件并生成另一个文本文件,因此科学符号号将在1.00E-06和1.00E + 03之间更改。生成的文本文件需要将这些数字作为整数(即介于0.000001和1000之间)。感谢您的帮助!
答案 0 :(得分:1)
您发布的链接实际上给出了答案,尽管是回旋方式。 int()无法解析尚未表示整数的字符串。 但是科学数字是浮点数。
因此,您需要先将其强制转换为浮动以解析字符串。
尝试:
print(float(distance))
对于带有更多小数的数字(例如您的1.00E-06示例),您可以一直强制使用浮点符号。试试:
print(format(float(distance), 'f'))
如果只需要一定数量的小数,请尝试:
print(format(float(distance), '.2f'))
(例如)