2011-06-22 15 views
3

私はPythonを使ってコンピュータの物理ディスクを開いて最初のセクタを読み込みます。Windows 7でファイルを読み込む前にPythonの読み込みが終了する

Windows XP len(partdata)では、512が返され、正しい内容が返されます。 Windows 7の場合、len(partdata)は230を返し、データが破棄されるまでデータは正しいです。

また、ディスクをさらに遠ざけようとすると、最初の230バイトしか返されません。

PythonのバージョンのWindows 7、1台の32ビットマシン1つの64ビット上で2.7.1と2.7.2 32ビットおよび64ビット

。バイナリモードで

+0

興味深い問題。あなたはこのコードを管理者として実行していると思いますか?私は想像したいのは、許可の要素があれば、ここではすべてのデータを取得することも、それを取得することもできないということです。とにかく、きちんとした問題です。 –

+0

はい、Win7ではAdminとして実行されます。あなたがしない場合は、ファイルをまったく開くことができません。 – Shawn

答えて

7

てみ開口

with open(disk, 'rb') as f: 
+0

ありがとうございます。これが問題でした。なぜXPが働いたのか、そして7つはないのか? – Shawn

+1

おそらくコメディですか? –

+1

@Shawnおそらく、あなたが読んでいたデータには、ウィンドウが特別にテキストモードで扱うバイトはありませんでした。特に、chr(26)はテキストモードで "End Of File"を意味します –

関連する問題