浮点数必须是字符串还是数字?

Pan*_*pai 11 python type-conversion text-files

我有一个非常简单的程序.代码:

money = open("money.txt", "r")
moneyx = float(money)
print(moneyx)
Run Code Online (Sandbox Code Playgroud)

文本文件money.txt仅包含以下内容:

0.00
Run Code Online (Sandbox Code Playgroud)

我收到的错误消息是:

TypeError: float() argument must be a string or a number
Run Code Online (Sandbox Code Playgroud)

这很可能是一个简单的错误.有什么建议?我使用的是Python 3.3.3.

tob*_*s_k 12

money是一个file对象,而不是文件的内容.要获取内容,您必须拥有read该文件.如果整个文件只包含那个数字,那么read()就是您所需要的.

moneyx = float(money.read())
Run Code Online (Sandbox Code Playgroud)

否则,您可能希望使用readline()读取单行甚至尝试使用csv模块来处理更复杂的文件.

此外,完成后不要忘记close()文件,或使用with关键字自动关闭它.

with open("money.txt") as money:
    moneyx = float(money.read())
print(moneyx)
Run Code Online (Sandbox Code Playgroud)