【发布时间】:2021-04-02 04:15:16
【问题描述】:
我希望标题不要太混乱。请看下面的图片和gif。
假设我有一个这样的目录。现在我想压缩所有匹配“cs-”、“es-”、“fr-”等的文件夹,如下图所示:
编辑:所有文件夹都有多个子文件夹和/或文件。
到目前为止,我设法找到了我想要的所有文件夹:
import zipfile, os, shutil, pprint
from pathlib import Path
userPath1 = Path(input("Please give me a path:",))
# '- set(userPath1.glob("*.*")' is deducted so that only folders (and no files) are stored in the variables
csFileServerFileList = list(set(userPath1.glob('cs-*')) - set(userPath1.glob("*.*")))
esFileServerFileList = list(set(userPath1.glob('es-*')) - set(userPath1.glob("*.*")))
frFileServerFileList = list(set(userPath1.glob('fr-*')) - set(userPath1.glob("*.*")))
itFileServerFileList = list(set(userPath1.glob('it-*')) - set(userPath1.glob("*.*")))
jaFileServerFileList = list(set(userPath1.glob('ja-*')) - set(userPath1.glob("*.*")))
nlFileServerFileList = list(set(userPath1.glob('nl-*')) - set(userPath1.glob("*.*")))
plFileServerFileList = list(set(userPath1.glob('pl-*')) - set(userPath1.glob("*.*")))
ptFileServerFileList = list(set(userPath1.glob('pt-*')) - set(userPath1.glob("*.*")))
ruFileServerFileList = list(set(userPath1.glob('ru-*')) - set(userPath1.glob("*.*")))
trFileServerFileList = list(set(userPath1.glob('tr-*')) - set(userPath1.glob("*.*")))
langFileServerList = [
csFileServerFileList, esFileServerFileList, frFileServerFileList, itFileServerFileList,
jaFileServerFileList, nlFileServerFileList, plFileServerFileList, ptFileServerFileList,
ruFileServerFileList, trFileServerFileList
]
for list in langFileServerList:
for i in list:
print(i)
我知道这种方法:
>>> newZip = zipfile.ZipFile('new.zip', 'w')
>>> newZip.write('spam.txt', compress_type=zipfile.ZIP_DEFLATED)
>>> newZip.close()
但它只适用于文件而不适用于文件夹。
非常感谢您的帮助!
【问题讨论】:
标签: python