Установить права на сжатый файл в Python

У меня есть файлtest.txt то есть внутри почтового архиваtest.zip, Разрешения наtest.txt находятся вне моего контроля, когда они сжаты, но теперь я хочу, чтобы они были доступны для записи в группе. Я извлекаю файл с помощью Python и не хочу выходить в оболочку.

РЕДАКТИРОВАТЬ: Вот что у меня так далеко:

import zipfile

z = zipfile.ZipFile('test.zip', 'w')
zi = zipfile.ZipInfo('test.txt')
zi.external_attr = 0777 << 16L
z.writestr(zi, 'FOO')
z.close()

z = zipfile.ZipFile('test.zip', 'r')
for name in z.namelist():
    newFile = open(name, "wb")
    newFile.write(z.read(name))

    newFile.close()
z.close()

Это прекрасно работает на OS X с использованием 2.5.1, но не работает на моем домашнем компьютере (Debian, Python 2.4 и 2.5) или на RHEL 5 с Python 2.4. На любом, кроме OS X, это не ошибка, но и не меняет разрешения. Есть идеи почему? Кроме того, какwritestr() Работа? Я знаю, что я использую это неправильно здесь.

Есть ли способ сделать это безos.chmod (пользователь, извлекающий файл, не имеет прав на использованиеos.chmod после его извлечения)? У меня есть полный доступ на запись в ZIP-файл.

Больше информации:

> ls -l test.zip
-rwxrwxrwx 1 myuser mygroup 2008-11-11 13:24 test.zip
> unzip test.zip
Archive:  test.zip
  inflating: test.txt 
> ls -l test.txt
-rw-r--r-- 1 myuser mygroup 2008-11-11 13:34 test.txt

Пользователь извлекает неmyuser, но находится вmygroup.

Ответы на вопрос(3)

Ваш ответ на вопрос