0
Использование zipfile
архивировать data
словарь:Как заархивировать двоичные данные
import os, sys, cPickle, zipfile
data = {1: 'one'}
pfile = r'c:\temp\myPickle.p'
cPickle.dump(data, open(pfile, "wb"))
zfilename = r'c:\temp\myArchive.zip'
zfile = zipfile.ZipFile(zfilename, "w", zipfile.ZIP_DEFLATED)
zfile.write(pfile, os.path.basename(pfile))
zfile.close()
подход приводит два файла на локальном диске: один является рассол, а другой является застежка-молния. Чтобы маринованные data
зип файл должен быть не-архив:
fh = open(zfilename, 'rb')
z = zipfile.ZipFile(fh)
for each in z.namelist():
z.extract(each, r'c:\temp')
fh.close()
Как упростить этот процесс?
[ZipFile.open] (https://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.open), [ZipFile.read] (HTTPS: //docs.python .org/3/library/zipfile.html # zipfile.ZipFile.read), [ZipFile.writestr] (https://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.writestr) – spectras
от некоторый быстрый googling, я нашел функции, которые вам, вероятно, нужны: 'saved = pickle.dumps (data)' dumps генерирует строку. zipfile имеет .writestr() для поворота строк в zip. таким образом только один файл. – Nullman