Распаковать файл .Z

У меня есть файл N225.e00.Z.zip. Я могу распаковать его и взять файл N225.e00.Z, и застрял там. Использование Python 2.6

Я искал и пробовал 3 разных способа разархивировать это, но безуспешно.

1)

import zlib, gzip, os

ncomp = os.popen("uncompress -c " + zfile + ">" _ os.path.splitext(zfile)[0] )

это возвращает файл N225.e00, но его размер равен 0

2)

import zlib, gzip, os

zfile = r"C:\N225.e00.Z
zrecover = r"C:\N225.e00

str_obj1 = open(zfile, "rb").read()
str_obj2 = zlib.compress(str_obj1)
f = open(zrecover, "wb")
f.write(str_obj2)
f.close()

это возвращает N225.e00, и у него есть размер файла, но он меньше, чем оригинальный, и на самом деле не несжатый.

последний, который я пробовал, старый добрый gzip

3)

import zlib, gzip, os

zfile = r"C:\N225.e00.Z

f = gzip.open(zfile, "rb")
filecontent = f.read()
f.close()

Я получаю сообщение об ошибке IOError: Not a gzip-файл.


person user1015375    schedule 02.12.2011    source источник
comment
Можете ли вы распаковать его через оболочку bash?   -  person Blender    schedule 02.12.2011
comment
в настоящее время это невозможно сделать с собственной библиотекой Python (вызов внешней программы для unZ может быть вашим единственным выбором). Смотри сюда http://www.chilkatsoft.com/python-zip.asp, не понятно как они это делают (смотри внизу фичи)   -  person KevinDTimm    schedule 02.12.2011
comment
никогда не использовал оболочку bash, для этого я застрял на машине с win xp.   -  person user1015375    schedule 02.12.2011


Ответы (1)


Я бы не стал трубить вещи. Просто используйте uncompress:

os.system('uncompress {filename}'.format(filename = 'C:\\N225.e00.Z'))
person Blender    schedule 02.12.2011
comment
ОК, попробовал это, как написано, и я получаю вспышку на экране, но ничего не происходит, поэтому я добавил конец своего попана к вашему, и он снова создал пустой файл. Я вынужден сделать это на машине Win XP. - person user1015375; 02.12.2011
comment
Он должен создать файл в вашем текущем рабочем каталоге (обычно C:/Users/Username/). - person Blender; 02.12.2011
comment
Хорошо, может быть, это недостаток Python, но я проверил свой рабочий каталог с помощью pring os.getcwd() и запустил вашу строку, в оболочке я получаю 1, но в рабочем каталоге ничего не отображается. - person user1015375; 02.12.2011