Создание архива .zip с Python в MS DOS - PullRequest
0 голосов
/ 24 ноября 2010

Я новичок в программировании.Я пытаюсь выучить Python, используя CH Swaroop "Byte of Python".Одним из примеров является создание программы, которая будет резервировать некоторые файлы из одного каталога в другой и сжимать их в формате .zip.К сожалению, приведенный им пример полезен только в том случае, если вы являетесь пользователем linux / unix.Для пользователей Windows он говорит, что только «пользователи Windows могут использовать программу Info-Zip», но не уточняет дальше.Это код, который он предоставляет ...

#!/usr/bin/python
# Filename : backup_ver1.py

import os
import time


# 1. The files and directories to be backed up are specified in a list.
source = [r'C:\Users\ClickityCluck\Documents']

# 2. The backup must be stored in a main backup directory
target_dir = r'C:\Backup'
# 3. Zip seems good

# 4. Let's make the name of the file the current date/time
target = target_dir + time.strftime('%Y%m%d%H%M%S') + '.zip'

# 5. We use the zip command to put the files in a zip archive
zip_command = "zip -qr '%s' %s" % (target, ''.join(source))

# Run Backup
if os.system(zip_command) == 0:
    print "Succesful backup to", target
else:
    print 'BACKUP FAILED :('

Может кто-нибудь выложить мне способ сделать это в командной строке на Windows 7?Спасибо за ваше время, и я заранее прошу прощения, если я не предоставил некоторую соответствующую информацию:)

Ответы [ 3 ]

1 голос
/ 23 января 2019

Для пользователей Python 3 с использованием метода формата ответ должен быть:

   # 1. The files and directories to be backed up are specified in a list.
   source = [r'C\Users\MySourceDir']

   # 2. The backup must be stored in a # main backup directory
   target_dir = r'C:\Users\MyTargetDir'

   # 3. The files are backed up into a zip file.
   # 4. The name of the zip archive is the current date and time
   target = target_dir + os.sep + time.strftime('%Y%m%d%H%M%S') + '.7z'

   # Create target directory if it is not present
   if not os.path.exists(target_dir):
       os.mkdir(target_dir)

   # 5. We use the zip command to put the files in a zip archive
   zip_command = 'C:\\"Program Files"\\7-Zip\\7z a -t7z -r "{0}" "{1}"'.format(target,' '.join(source)) # be careful with spaces on each dir specification. Problems could arise if double-quotation marks aren't between them. 

   # Run the backup 
   print('Zip command is:') 
   print(zip_command)
   print('Running:')

   if os.system(zip_command) == 0: 
       print('Successful backup to', target)
   else: 
       print('Backup FAILED')

0 голосов
/ 27 июля 2012
#!/usr/bin/python -tt
# Filename: backup_ver1.py

import os
import time

# 1. The files and directories to be backed up are specified in a list.
source = ['C:\\Documents\\working_projects\\', 'C:\\Documents\\hot_tips\\']

# 2. The back up must be stored in a main back directory
target_dir = 'C:\\temp\\backup\\'

# 3. The files are backed up into a zip file

# 4. The name of the zip archive is the current date and time
target = target_dir + time.strftime('%Y%m%d%H%M%S') + '.7z'

# 5.  We use the zip command to put the files in a zip archive
#zip_command = "zip -qr '%s' %s" % (target, ' '.join(source))
zip_command = 'C:\\"Program Files"\\7-Zip\\7z a -t7z "%s" %s' % (target, ' '.join(source))

# Run the backup
if os.system(zip_command) == 0:
    print 'Successful back up to', target
else:
    print 'Backup FAILED'
0 голосов
/ 24 ноября 2010

zip - утилита командной строки для создания / обновления / извлечения ZIP-архивов, доступная в Unix / Linux / Mac OS X. Если вы хотите архивировать файлы с помощью утилиты командной строки, вы должны найти и установить соответствующую папку (compress, например, является частью набора ресурсов).

Другой способ - использовать модуль zipfile в python и создать полезную утилиту командной строки для windows:)

Кстати, почему ваш вопрос относится к MS DOS?

...