Python: двоичный файл в файл gz, затем в расширение jpg и, наконец, снова вернитесь к исходному двоичному файлу - PullRequest
0 голосов
/ 28 июня 2011

Я хочу сделать следующее в Python:

  1. Взять двоичный (исполняемый) файл
  2. Превратите его в zip-файл с помощью gzip (расширение gz)
  3. Затем поставьте расширение jpg

Позже снова желание восстановить оригинал (без расширения gz или jpg).

Идея состоит в том, чтобы отправить двоичные файлы через GMail SMTP для восстановления, а затем передать их через IMAP и обработать их в оригинальной форме (1).

Ответы [ 2 ]

2 голосов
/ 28 июня 2011

Библиотеки python gzip и shutil могут делать то, что вам нужно.

Чтобы сжать исполняемый файл.

import gzip, shutil

src = open('executable', 'rb')
dest = gzip.open('executable.gz.jpg', 'wb')

shutil.copyfileobj(src, dest)

src.close()
dest.close()

И затем вернуть оригинал.

import gzip. shutil

src = gzip.open('executable.gz.jpg', 'rb')
dest = gzip.open('executable', 'wb')

shutil.copyfileobj(src, dest)

src.close()
dest.close()

При этом фильтры MIME gmail смотрят на контент, а не на расширение, так что он все еще может заблокировать новый файл.

2 голосов
/ 28 июня 2011

Вы можете использовать gzip для сжатия файлов и os.rename для изменения имен файлов. В вашем случае вы можете просто использовать gzip и сохранить его с расширением .jpg.

import gzip

# write compressed file
with gzip.open('my_file.jpg', 'wb') as f:
    f.write(content)

# read it again
with gzip.open('my_file.jpg', 'rb') as f:
    content = f.read()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...