python zipfile 모듈을 사용하여 폴더의 모든 파일을 압축하려고합니다 (폴더에 하위 디렉토리가 없음). 그러나 원하는 출력을 얻을 수 없습니다.Python - zipfile 모듈을 사용하여 디렉토리의 모든 파일 압축
folderA
은 F:\Projects\ProjectA\Folders\folderA and my script under F:\Projects\ProjectA\CodeA\zipcode.py
입니다. 결과 zip 파일의 이름이 folderA.zip
이고 F:\Projects\ProjectA\Folders
이며 원본 파일 이름이되도록 folderA의 모든 파일을 압축하려고합니다.
유일한 문제는 결과를 압축 해제하면 folderA 대신 Folders \ folderA가 생성된다는 것입니다. 스크립트에 folderA의 상대 경로와 관련이 있지만 원하는 결과를 얻지 못하는 것 같습니다. 루프에서
#zipcode.py
import os
import zipfile
filepath = "F:/Projects/ProjectA/Folders/folderA"
archive = zipfile.ZipFile(os.path.abspath(filepath) + '.zip', 'w')
for root, dirs, files in os.walk(filepath):
for afile in files:
archive.write(os.path.relpath(os.path.join(root, afile)))
archive.close()
가 실제로 모든 파일이 거주와 폴 데라라는 이름의 폴더를 포함하는 출력 zip 파일을 원하는 작성할 수 있습니다 그 안에. 위 파일은 zip 파일에 직접 파일을 씁니다. –
@Riz_K : 첫 번째 대답은 true이지만 edit는'name_in_archive = os.path.join (os.path.basename (filepath), afile)'을 추가했습니다. 이렇게하면 모든 파일에'folderA' 접두사가 추가됩니다. 중요한 점은 아카이브에있는 파일의 이름을 제어하는 방법을 알고 있다는 것입니다. –
굉장 ... 세부 감사드립니다! –