這是我第一次將代碼碎片拼湊起來,形成我需要的實用程序(我是一位貿易設計師),雖然我覺得我是關閉,我無法使以下工作。Python - 在多個目錄中搜索文件和ZIP
我經常需要壓縮具有.COD擴展名的文件,這些文件位於我創建的目錄結構中。作爲一個例子,該結構可以是這樣的:
(單根文件夾) - >(多個文件夾) - >(兩個文件夾) - >(一個文件夾) - > COD文件
我需要ZIP將所有COD文件放入COD.zip中,並將該zip文件放置在當前文件的上方一個目錄中。文件夾結構是這樣的,例如完成時:
導出文件夾 - > 9800文件夾 - > 6文件夾 - > OTA文件夾(+新COD.zip) - > COD文件
我的問題 -
首先,它創建的COD.zip似乎適合其中的COD文件,但是當我解壓縮它時,內部只有1.cod,但該ZIP的文件大小是所有COD壓縮在一起的大小。
秒,我需要COD文件壓縮W/O任何文件夾結構 - 直接在COD.zip內。目前,我的腳本創建了一個完整的目錄結構(以「users/mysuername/etc etc」開頭)。
任何幫助將不勝感激 - 和解釋,甚至更好,因爲我想學習:)
感謝。
import os, glob, fnmatch, zipfile
def scandirs(path):
for currentFile in glob.glob(os.path.join(path, '*')):
if os.path.isdir(currentFile):
scandirs(currentFile)
if fnmatch.fnmatch(currentFile, '*.cod'):
cod = zipfile.ZipFile("COD.zip","a")
cod.write(currentFile)
scandirs(os.getcwd())
我擔心這會讓太多的.zip文件句柄一次打開。你可以決定改變你的遞歸一下,先遞歸遍歷所有的目錄,並且只有當沒有更多的目錄時,然後執行當前目錄中的所有文件,而不是一次性混合執行文件和目錄。 – 2010-11-24 23:54:01