こんにちは私はプログラミングの初心者です。私はZed Shawの本「難解なことを学ぶPython」を読んでいます。私は奇妙なことを見つけました。私はなぜそれが私にエラーを与え続けているのだろうと思っています:TypeError:Windows Powershellでコードを実行した後、 'file'型のオブジェクトにlen()がありません。実行したコード:TypeError:タイプ 'file'のオブジェクトにlen()がありません
from sys import argv
from os.path import exists
script, from_file, to_file = argv
print "Copying from %s to %s" % (from_file, to_file)
in_file = open(from_file, "r")
print "The input file is %d bytes long" % len(in_file)
エラーは最終行にあると言います。なぜこのエラーが発生するのか理解できません。なぜなら私のファイルは読み取りモードで開いて変数in_fileに保存していたからです。では、なぜin_fileのlenを読むことができないのでしょうか?だから私は彼が私が私が書いたコードを書きたいと仮定# we could do these two on one line, how?
:ゼッド・ショーの著書の中で彼は、私がコメントで
in_file = open(from_file, "r")
を書いていた場所に
in_file = open(from_file)
indata = in_file.read()
を書きました。
誰かが私を助けることができたらうれしいです。事前に感謝
"私は、私が書いたコードを書くようにと思った。" - いいえ。あなたは、その「r」が意味することを誤解しているようです。 – user2357112
ファイルを読み取りモードで開くことは、ファイルを読み取ることとは大きく異なります。これは、本を読んで意図を持って本を開いて(実際にそれを強調したり下線を引いたりすることとは対照的に)、実際に読むこととの違いです。 –
FYI:http://sopython.com/wiki/LPTHW_Complaints – jonrsharpe