2012-11-22 83 views
3

我有一些我正在嘗試完成的作業。我不想要答案。我在開始時遇到麻煩。我嘗試過的工作根本不起作用......有人可以推薦一個正確的方向。我正在努力學習,但嘗試和嘗試後,我需要一些幫助。python zipfile basename

我知道我可以讓你os.path.basename()獲取基名,然後將其添加到文件名,但我不能把它合在一起。

這裏是分配

在這個項目中,編寫一個函數,將一個目錄路徑,並只創建目錄的存檔。例如,如果使用與示例("c:\\xxxx\\Archives\\archive_me")相同的路徑,zip文件將包含archive_me\\grouchoarchive_me\\harpoarchive_me\\chico

基本目錄(上例中的archive_me)是輸入的最後一個元素,並且記錄在zip文件中的所有路徑都應以基本目錄開頭。

如果目錄包含子目錄,則不應包含子目錄名稱和子目錄中的任何文件。 (提示:您可以使用isfile()來確定文件名是否代表常規文件而不是目錄。)

再次感謝任何方向都很棒。

回答

4

這將有助於瞭解你試過自己,所以我只給幾個指針這樣的方法,標準庫:

  • os.listdir下得到一個給定的文件和文件夾的列表目錄(注意,它僅返回文件/文件夾名,而不是完整路徑!)

  • os.path.isfile在分配中提到檢查一個給定的路徑表示一個文件或文件夾

  • os.path.isdiros.path.isfile相反(感謝inspectorG4adget

  • os.path.join加入與BASEDIR的文件名,而不必擔心斜線和分隔符

  • ZipFile的處理,很好,zip文件

  • zipFile.write將找到的文件寫入郵編

我'米不知道你會需要所有這些,但它不知道他們存在。

+1

另外,'os.path.isdir'確定給定的路徑是否指向一個目錄 – inspectorG4dget