2012-05-15 3 views
3

Фактически я пишу скрипт, который записывает два файла на рабочий стол, пусть это будет «a.txt» и «b.txt» ....... так после записи на рабочий стол мне нужно прочитать эти файлы и закрепить в папке ....Как добавить несколько файлов в одну папку zip

может кто-нибудь помочь в этом .... я знаю, как застегнуть папку, но dono, как добавить два файла в застежка-молния

Чтение из папки я знаю его, как это

def zipdir(basedir, archivename): 
    assert os.path.isdir(basedir) 
    with closing(ZipFile(archivename, "w", ZIP_DEFLATED)) as z: 
     for root, dirs, files in os.walk(basedir): 
      for fn in files: 
       absfn = os.path.join(root, fn) 
       zfn = absfn[len(basedir)+len(os.sep):] 
       z.write(absfn, zfn) 

if __name__ == '__main__': 
    import sys 
    basedir = sys.argv[1] 
    archivename = sys.argv[2] 
    zipdir(basedir, archivename) 

код, который в настоящее время я использую это

import zipfile 
zip = zipfile.ZipFile('Python.zip', 'a') 
zip.write('fields.txt') 
zip.write('grp.txt') 
zip.close() 

Это создает файл из этих двух плюс некоторые дополнительные папки, которая содержит все файлы .......

+4

Это в [документы] (HTTP: // docs.python.org/library/zipfile.html#zipfile-objects) и в [zip-файловой структуре] (http://en.wikipedia.org/wiki/Zip_ (file_format) #Structure) в википедии. Всегда проверяйте документы перед тем, как задать вопрос о SO. –

+1

'closed (ZipFile())' redundant - 'ZipFile()' уже закрывает контекстный менеджер в последних версиях Python ... – glglgl

ответ

1

вам нужно открыть почтовый файл с «» -Append параметра. Затем вы можете использовать параметр записи, не перезаписывая файл.

источник: 12.4.1

EDIT:

zip.write ('file.pdf', '/ папка/file.pdf')

+0

@ -aphex я получил это и его работу, но добавив дополнительную папку, содержащую все файлы – user1182090

+0

Я пропустил ваш вопрос ... Также вы можете использовать его следующим образом: zip.write ('file.pdf', 'file.pdf') или zip.write ('file.pdf',) – aphex

Смежные вопросы