2016-11-23 6 views
1

を読みながら、私は、Python 3で、次の奇妙な行動を発見したソートされていないチャンクが破損:のPython 3:無料でクラッシュ():ファイル

file = open(path, mode='rb').read() 
file_ori = open(self.filePath, mode='rb').read() 

m = hashlib.md5() 
md5 = m.update(file) 
md5 = m.hexdigest() 

file = '0x'.encode('ascii') + binascii.hexlify(file) 
file_ori = '0x'.encode('ascii') + binascii.hexlify(file_ori) 

このシナリオでは、私のアプリケーションは無料(と後ですぐにクラッシュしたりします) :破損したソートされていないチャンク。問題なく

file = open(path, mode='rb') 
file_ori = open(self.filePath, mode='rb') 

filecont = file.read() 
file_oricont = file_ori.read() 

m = hashlib.md5() 
md5 = m.update(filecont) 
md5 = m.hexdigest() 

fileb = '0x'.encode('ascii') + binascii.hexlify(filecont) 
fileb_ori = '0x'.encode('ascii') + binascii.hexlify(file_oricont) 

アプリケーションが実行されている:私は、コードに変更すると

ドキュメントを何度も読みましたが、この動作の理由が見つかりませんでした。誰かがこれについてもっと知りましたか?それは私にはPythonとガベージコレクションのバグがあるようですか?

私はpython3.4とpython3.5でテストしました。

おかげ マヌエル

答えて

1

最初exemple:働いていたのpython 2.7でテストされ、エラーが

二exemple発生ウィッヒラインに教えて:あなたはf.readを呼び出すときに(知っている必要がありますが)ファイル内のカーソルがファイルの末尾に来るので、別のf.read()は何も出力しません。つまり、 ''は2つのexemplesが異なるためです

+0

なぜdownvoteですか? – rawinput

+0

必ず読んでください。これは私の間違いでした。サンプルを調整します。 – MAGYS

関連する問題