2012-05-15 2 views
3

사실 나는 두 개의 파일을 바탕 화면에 쓰는 스크립트를 작성하고 "a.txt"및 "b.txt"로 지정합니다. 바탕 화면에 쓰고 난 후에 나는이 파일을 읽고 폴더에 집어 넣어야한다. ...하나의 zip 폴더에 여러 파일을 추가하는 방법

누군가는 이것에 관해 도울 수있다. ... 나는 폴더에 지퍼를 두는 방법을 안다. 내가 아는 폴더에서 읽기

우편은 지금은 사용이

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() 

이것은 두의 파일 플러스 모든 파일이 포함 된 몇 가지 추가 폴더 ....... 당신이 "A"-append 매개 변수를 사용하여 zip 파일을 열 필요가

+4

그것은 [문서]에서의 (HTTP : // docs.python.org/library/zipfile.html#zipfile-objects) 및 위키피디아의 [zip 파일 구조] (http://en.wikipedia.org/wiki/Zip_ (file_format) #Structure)를 참조하십시오. SO에 관한 질문을하기 전에 항상 문서를 확인하십시오. –

+1

'close (ZipFile())'가 중복 됨 -'ZipFile()'은 최근 Python 버전에서 이미 닫는 컨텍스트 관리자입니다 ... – glglgl

답변

1

를 작성. 그런 다음 파일을 덮어 쓰지 않고 쓰기 매개 변수를 사용할 수 있습니다.

소스 : 12.4.1

편집 :

zip.write ('file.pdf', '/ 폴더/file.pdf')

+0

@ -aphex 그걸 가지고 있고 작동하지만 모든 파일이 들어있는 여분의 폴더를 추가했습니다. – user1182090

+0

나는 당신의 질문을 잘 이해하지 못했습니다 ... 또한 zip.write ('file.pdf', 'file.pdf') 또는 zip.write ('file.pdf')와 같이 사용할 수 있습니다. – aphex

관련 문제