2017-12-22 1 views
0

file123.zip이라는 파일의 압축을 풀어 zipfile.ZipFile으로 압축 해제하면 압축이 풀린 파일이 알려진 경로에 저장됩니다. 그러나이 압축 해제 된 파일은 완전히 임의의 이름을가집니다. 이 무작위 파일 이름을 어떻게 결정합니까? 또는 압축을 푼 파일의 이름을 제어하는 ​​방법이 있습니까? 파이썬에서 이것을 구현하려고합니다.압축 해제 된 파일의 파일 이름 확인

+0

압축을 푼 파일의 이름이 압축되지 않은 파일입니까? – DavidG

+0

아니요. 그리고 내가 말하고자했던 것은 압축되지 않은 파일 이름이 임의적이지 않고 임의적이라는 것입니다. @mhawke가 아래에 말했습니다. – iknowfrench

+0

@iknowfrench :이 경우 문제를 해결하지 못하는 내 대답에 대해 뭔가가 있습니까? 자신의 파일 이름을 선택할 수 있으며 파일 이름은'namelist()'에서 사용할 수 있습니다. – mhawke

답변

0

"임의" 나는 파일 이름이 임의로 지정되었다고 가정합니다.

파일을 압축 해제하고 내용을 바이트 문자열로 반환하는 ZipFile.read()을 사용할 수 있습니다. 그런 다음 해당 문자열을 선택한 명명 된 파일에 쓸 수 있습니다.

from zipfile import ZipFile 

with ZipFile('file123.zip') as zf: 
    for i, name in enumerate(zf.namelist()): 
     with open('outfile_{}'.format(i), 'wb') as f: 
      f.write(zf.read(name)) 

이렇게하면 아카이브의 각 파일이 현재 디렉토리의 output_n 파일에 기록됩니다. 아카이브에 포함 된 파일의 이름은 ZipFile.namelist()으로 얻습니다. 나는 파일 이름을 생성하는 간단한 방법으로 enumerate()을 사용했지만, 당신이 필요로하는 어떤 명명 체계로 그것을 대체 할 수 있습니다.

0

파일 이름이 완전히 임의 인 경우 먼저 os.listdir()을 사용하여 특정 디렉토리의 모든 파일 이름을 확인할 수 있습니다. 이제 파일 이름을 알고 원하는대로 할 수 있습니다.

자세한 내용은 this 항목을 참조하십시오.