1. ホーム
  2. python

[解決済み】Floatは文字列か数字でなければならない?

2022-02-19 19:19:53

質問

とても簡単なプログラムを持っています。そのコードです。

money = open("money.txt", "r")
moneyx = float(money)
print(moneyx)

テキストファイル「money.txt」には、これだけが書かれています。

0.00

私が受け取るエラーメッセージは

TypeError: float() argument must be a string or a number

単純なミスである可能性が高いです。何かアドバイスがあればお願いします。Python 3.3.3を使っています。

解決方法を教えてください。

money file オブジェクト , ではない は、そのファイルの内容です。内容を取得するためには read というファイルを作成します。もしファイル全体がその1つの数字だけを含んでいるならば read() が必要です。

moneyx = float(money.read())

それ以外の場合は readline() を使用して1行ずつ読み取るか、あるいは csv モジュールは、より複雑なファイルにも対応します。

また、忘れてはならないのが close() を使用するか、あるいは with キーワードで自動的に閉じられます。

with open("money.txt") as money:
    moneyx = float(money.read())
print(moneyx)