Транзакция отката с помощью журнала транзакций

Как мне создать zip-архив структуры каталогов в Python?

В скрипте Python

В Python 2.7+ shutil имеет make_archive функция.

from shutil import make_archive
make_archive(
  'zipfile_name', 
  'zip',           # the archive format - or tar, bztar, gztar 
  root_dir=None,   # root for archive - current working dir if None
  base_dir=None)   # start archiving from here - cwd if None too

Здесь архив будет назван zipfile_name.zip. Если base_dir будет дальше от root_dir, это исключит файлы, не входящие в base_dir, но все же заархивирует файлы в родительских каталогах до root_dir.

У меня была проблема с тестированием на Cygwin с 2.7 - ему нужен аргумент root_dir для cwd:

make_archive('zipfile_name', 'zip', root_dir='.')

Использование Python из оболочки

Вы можете сделать это с Python из оболочки также с помощью модуля zipfile:

$ python -m zipfile -c zipname sourcedir

где zipname - имя файла назначения, который вы хотите (добавьте .zip, если хотите, он не будет делать это автоматически ) и sourcedir - это путь к каталогу.

Архивирование Python (или просто не нужен родительский каталог):

Если вы пытаетесь сжать пакет Python с __init__.py и __main__.py, и вы не хотите родительский каталог, это

$ python -m zipfile -c zipname sourcedir/*

И

$ python zipname

будет запускать пакет. (Обратите внимание, что вы не можете запускать подпакеты в качестве точки входа из архива в архиве.)

Архивирование приложения Python:

Если у вас есть python3.5 +, и вы хотите заархивировать его пакет Python, используйте zipapp :

$ python -m zipapp myapp
$ python myapp.pyz
12
задан Peter Mortensen 13 February 2016 в 09:45
поделиться

2 ответа

Исходно нет. Тем не менее, я считаю, что для этого существуют дорогие сторонние инструменты.

Кроме того, вы можете восстановить свою БД из резервной копии, а затем ВОССТАНОВИТЬ ЖУРНАЛЫ до определенного момента времени с помощью STOPAT = '30.06.2009 14:30' аргумент.

Доступны Apex и Спасение журнала SQL . Если ваши журналы не находятся в режиме восстановления FULL , вы можете оказаться в затруднительном положении, если не сможете восстановить.

10
ответ дан 2 December 2019 в 07:03
поделиться

Ознакомьтесь с продуктом LogRescue RedGate. Без сторонних продуктов вы, вероятно, ограничитесь восстановлением на определенный момент времени в отдельной базе данных, а затем вручную скопируете запись обратно в производственную базу данных.

3
ответ дан 2 December 2019 в 07:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: