私は現在、データの読み取りおよび書き込み時に Python 3 がバイトを処理する方法を実験していますが、原因が見つからないように見える特に厄介な問題に遭遇しました。私は基本的にJPEGファイルからバイトを読み取り、を使用して整数に変換しord()、行を使用してバイトを元の文字chr(character).encode('utf-8')に戻し、JPEGファイルに書き戻します。問題ありませんよね?JPEG ファイルを開こうとすると、Windows 8.1 で写真を開けないという通知が表示されます。2 つのファイルを確認すると、1 つは 5.04MB、もう 1 つは 7.63MB で、非常に混乱しています。
def __main__():
operating_file = open('photo.jpg', 'rb')
while True:
data_chunk = operating_file.read(64*1024)
if len(data_chunk) == 0:
print('COMPLETE')
break
else:
new_operation = open('newFile.txt', 'ab')
for character in list(data_chunk):
new_operation.write(chr(character).encode('utf-8'))
if __name__ == '__main__':
__main__()
これは私が使用している正確なコードです。何が起こっているのか、どうすれば修正できるのかについてのアイデアはありますか?
注:list(data_chunk)提供される番号のリストは と同等であると想定していますord()。