这是我第一次将代码碎片拼凑起来,形成我需要的实用程序(我是一位贸易设计师),虽然我觉得我是关闭,我无法使以下工作。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