2012-11-22 2 views
3

제가 완료하려고하는 숙제가 있습니다. 나는 대답을 원하지 않는다. 나는 시작하는 데 어려움을 겪고있다. 시도한 작업이 전혀 작동하지 않습니다 ... 누군가가 올바른 방향으로 밀기 만 할 수 있습니까? 나는 배우려고 노력하고 있지만 노력하고 시도한 후에 도움이 필요합니다.python zipfile basename

내가 당신을 os.path.basename() 기본 이름을 얻고 파일 이름에 추가 할 수 있지만 함께 가져올 수 없다는 것을 알고 있습니다.

는 다음 디렉토리 경로를 사용 만 디렉토리의 아카이브를 생성하는 함수를 작성,이 프로젝트에 할당

입니다. 예를 들어 ("c:\\xxxx\\Archives\\archive_me") 예제와 같은 경로를 사용하면 zip 파일에 archive_me\\groucho, archive_me\\harpoarchive_me\\chico이 포함됩니다.

기본 디렉토리 (위 예의 archive_me)는 입력의 마지막 요소이며 zip 파일에 기록 된 모든 경로는 기본 디렉토리로 시작해야합니다.

디렉토리에 하위 디렉토리가있는 경우 하위 디렉토리 이름과 하위 디렉토리에있는 파일을 포함하지 않아야합니다. (힌트 : isfile()을 사용하면 파일 이름이 디렉토리가 아닌 일반 파일을 나타내는 지 확인할 수 있습니다.)

감사합니다. 어떤 방향 으로든 좋을 것입니다.

답변

4
그것은 당신이 자신을 시도 알고하는 데 도움이, 그래서 것

난 단지 표준 라이브러리의 방법에 몇 가지 포인터를주는거야 :

  • os.listdir 주어진에서 파일 및 폴더의 목록을 얻으려면 디렉토리 (그것은 단지 파일/폴더 이름이 아닌 전체 경로를 반환 조심!)

  • os.path.isfile 주어진 경로가 파일 또는 폴더를 나타내는 지 확인하기 위해 할당에 언급 한 바와 같이

  • os.path.isdir, os.path.isfile의 반대 (감사 inspectorG4adget)

  • os.path.join 슬래시에 대해 걱정할 필요없이 기본 디렉토리와 파일 이름에 가입하고 구분자

    처리를위한
  • ZipFile, 음, zip 파일

  • zipFile.write zip에있는 파일을 작성 하시려면

I ' 당신이 그 모든 것을 필요로할지 모르겠지만 그것이 존재한다는 것을 아는 것은 상처가되지 않습니다.

+1

또한,'os.path.isdir'는 주어진 경로가 디렉토리를 가리키는지를 결정합니다 – inspectorG4dget

관련 문제