私は非常にシンプルなプログラムを持っています。コード:
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
オブジェクト 、notファイルのコンテンツです。コンテンツを取得するには、ファイルをread
する必要があります。ファイル全体にその1つの数値のみが含まれている場合、必要なのは read()
だけです。
_moneyx = float(money.read())
_
それ以外の場合は、 readline()
を使用して1行を読み取るか、より複雑なファイルに対して csv
モジュールを試してください。
また、完了したらファイルを close()
することを忘れないでください。または、with
キーワードを使用して自動的に閉じてください。
_with open("money.txt") as money:
moneyx = float(money.read())
print(moneyx)
_
Moneyは文字列ではなくファイルなので、ファイル全体をfloatに変換することはできません。代わりに、ファイル全体をリストに読み込み、各行がリスト内のアイテムである、このようなことを行うことができます。ループして、そのように変換します。
money = open("money.txt", "r")
lines = money.readlines()
for l in lines:
moneyx = float(l)
print(moneyx)
Pythonでファイルを開くときに「with」を使用することをお勧めします。このように、操作が完了するとファイルは暗黙的に閉じられます
with open("money.txt", "r") as f:
content = f.readlines()
for line in content:
print float(line)