2014-04-07 5 views
1

해당 경로의 파일 이름 및 파일 목록을 매개 변수로 사용하고 모든 파일을 하나의 보관 파일로 압축하는 간단한 방법이 있습니다. 문제는 파일을 압축하는 대신 압축하려고하는 각 파일에 대해 아카이브에 빈 디렉토리를 생성한다는 것입니다. 내가 난 것을 잘못하고있는 무슨ZIP - 압축 파일이 실제로 ZIP 파일이 아님

/test_1.txt/ 
/test_2.txt/ 
/test_3.txt/ 

: 나는

zip('uploads/', ['test_1.txt', 'test_2.txt', 'test_3.txt']) 

내가 다음 디렉토리가있는 아카이브 파일로 끝날 호출하면

def zip(self, file_path, filename_list): 

     f = zipfile.ZipFile(file_path + '_converted_zip_archive.zip', 'w') 
     for filename in filename_list: 
      f.write(file_path, filename) 

     f.close() 

: 여기에 방법입니다 실제로이 텍스트 파일을 압축하지 않고 ZIP 파일에 빈 디렉토리를 만듭니다.

답변

2

디렉토리에 아카이브를 세 번 쓰고 있습니다 (세 가지 이름). 좀 더 명확하게 말하면 다음과 같이 아카이브에 다음과 같이 쓰는 것입니다.

uploads/ as test_1.txt 
uploads/ as test_2.txt 
uploads/ as test_3.txt 

오히려이를 의미합니까?

def zip(self, file_path, filename_list): 
    f = zipfile.ZipFile(file_path + '_converted_zip_archive.zip', 'w') 
    for filename in filename_list: 
     f.write(file_path + filename, filename) # note the addition of filename here 
    f.close() 
+0

그래, 그게 전부 야. 감사! – jcaine04

+0

@ jcaine04 좋아요! 다행 이네. –

관련 문제