2

私はファイルfile.txtを持っています

やって

print os.path.getsize(filename)

出力

6510

とやって

print len(open(filename).read())

私を取得します

6355

どうして ?私はWindows7を使用しています。Windowsエクスプローラーでファイルのプロパティを見ると、

サイズ:6.35 KB(6,510バイト)

4

2 に答える 2

9

open(filename)filenameテキストモードで開きます。

これは、すべての(キャリッジ リターン、ライン フィード) がPython 文字列内\r\nの単一に変換されることを意味します。\n

ファイルの長さは 155 行のようです。

于 2012-07-09T15:05:34.820 に答える
-3

これは、ファイルがディスクに保存されるときに、ファイルシステムが余分なバイトを使用して、作成日や最終更新日などのファイルのさまざまなプロパティを保存するためです。あなたがするとき

print os.path.getsize(filename)

ディスク上の実際のファイルのサイズを取得します。

しかし、もしそうなら

print len(open(filename).read())

ファイルに保存されているコンテンツまたはデータの長さを取得するだけで、常に短くなります。

まさにこの理由で、Windows エクスプローラーのプロパティ ウィンドウには、サイズ (つまり、ファイルの内容の実際の長さ) とディスク上のサイズ (ディスク上のファイルが実際に占有するバイト数) が表示されます。

于 2012-07-09T15:10:17.737 に答える