Я хотел бы знать, как я могу заархивировать только все PDF-файлы из основного каталога, не включая подпапки.
Я несколько раз пытался изменить код, но безуспешно.
import zipfile
fantasy_zip = zipfile.ZipFile('/home/rob/Desktop/projects/zenjobv2/archivetest.zip', 'w')
for folder, subfolders, files in os.walk('/home/rob/Desktop/projects/zenjobv2/'):
for file in files:
if file.endswith('.pdf'):
fantasy_zip.write(os.path.join(folder, file), os.path.relpath(os.path.join(folder,file), '/home/rob/Desktop/projects/zenjobv2/'), compress_type = zipfile.ZIP_DEFLATED)
elif file.endswith('.xml'):
fantasy_zip.write(os.path.join(folder, file), os.path.relpath(os.path.join(folder,file), '/home/rob/Desktop/projects/zenjobv2/'), compress_type = zipfile.ZIP_DEFLATED)
fantasy_zip.close()
Я ожидаю, что zip создается только с файлами .pdf и .xml из папки/каталога zenjobv2 без включения каких-либо других папок/подпапок.
(Отредактировано) Решение:
import os, glob
import zipfile
fantasy_zip = zipfile.ZipFile('/home/rob/Desktop/projects/zenjobv2/archivetest.zip', 'w')
root = "/home/rob/Desktop/projects/zenjobv2"
for file in os.listdir(root):
if file.endswith('.pdf') or file.endswith(".xml"):
fantasy_zip.write(file)
fantasy_zip.close()