我想创建一个zip文件。在zip文件中添加一个文件夹,然后在该文件夹中添加一堆文件。
因此,我想得到一个压缩文件,里面只有一个文件夹。
我不知道在zip文件或其他内容中包含文件夹是否是一种不好的做法,但是google在这个问题上没有给我任何帮助。
我从这个开始:
def addFolderToZip(myZipFile,folder):
folder = folder.encode('ascii') #convert path to ascii for ZipFile Method
for file in glob.glob(folder+"/*"):
if os.path.isfile(file):
print file
myZipFile.write(file, os.path.basename(file), zipfile.ZIP_DEFLATED)
elif os.path.isdir(file):
addFolderToZip(myZipFile,file)
def createZipFile(filename,files,folders):
curTime=strftime("__%Y_%m_%d", time.localtime())
filename=filename+curTime;
print filename
zipFilename=utils.getFileName("files", filename+".zip")
myZipFile = zipfile.ZipFile( zipFilename, "w" ) # Open the zip file for writing
for file in files:
file = file.encode('ascii') #convert path to ascii for ZipFile Method
if os.path.isfile(file):
(filepath, filename) = os.path.split(file)
myZipFile.write( file, filename, zipfile.ZIP_DEFLATED )
for folder in folders:
addFolderToZip(myZipFile,folder)
myZipFile.close()
return (1,zipFilename)
(success,filename)=createZipFile(planName,files,folders);
摘自:http : //mail.python.org/pipermail/python-
list/2006-August/396166.html
它将删除所有文件夹,并将目标文件夹(及其子文件夹)中的所有文件放入单个zip文件中。我无法添加整个文件夹。
如果将路径输入到myZipFile.write中的文件夹,则会得到
IOError:[Errno 13]权限被拒绝:“ .. \ packed \ bin”
好的,在我理解了您想要的内容之后,它就像使用的第二个参数一样简单zipfile.write
,您可以在其中使用所需的任何内容:
import zipfile
myZipFile = zipfile.ZipFile("zip.zip", "w" )
myZipFile.write("test.py", "dir\\test.py", zipfile.ZIP_DEFLATED )
创建一个zipfile,test.py
将其解压缩到名为dir
编辑:我曾经不得不在zip文件中创建一个空目录:这是可能的。在上面的代码之后,只需从zip文件中删除文件test.py,该文件就消失了,但是空目录仍然存在。
问题内容: 我正在尝试将一些文件添加到ZIP文件中,它会创建文件,但不会在其中添加任何内容。代码1: 我的功能: 编辑: 我发现了问题,只是在将文件从C:\驱动器写入F:\驱动器的ZIP时遇到麻烦 问题答案: 您不能压缩文件夹,只能压缩文件。要压缩文件夹,必须手动添加所有子文件。我写了本课来完成这项工作。您可以免费获得它:) 用法是这样的: 这是课程: 请享用! 编辑 :要检查程序是否仍在忙,可以
问题内容: 我当前正在提取war文件的内容,然后将一些新文件添加到目录结构中,然后创建一个新的war文件。 所有这些都是通过Java以编程方式完成的-但我想知道,复制war文件然后追加文件是否会更有效-那么只要战争扩大,我就不必等待,再次被压缩。 但是,在文档或任何在线示例中,我似乎都找不到找到此方法的方法。 任何人都可以给一些提示或指示吗? 更新: 答案之一中提到的TrueZip似乎是一个非常好
问题内容: 我尝试解压缩150个zip文件。所有zip文件都使用不同的名称,它们都分散在一个大文件夹中,该文件夹分为许多子文件夹和子子文件夹。我想将每个存档提取到与原始zip文件名相同名称的单独文件夹中,与原始zip文件位于同一位置。我的代码是: 我运行代码后,什么都没有发生。在此先感谢您的任何帮助。 问题答案: 更新: 最后,这段代码对我有用:
问题内容: 我们可以创建一个zip新文件并使用Go Language添加文件。 但是,如何使用GoLang使用现有的zip文件添加新文件? 如果可以使用Create函数,如何获取zip.writer参考? 有点困惑。 问题答案: 经过更多分析,我发现无法使用现有的zip文件添加任何文件。 但是,通过遵循此URL中提供的技巧,我能够使用tar文件添加文件。
我想创建一个包含xml文件的zip文件夹并下载它。我可以下载zip,但它是空的。 我可以创建xml和zip: 顺便说一下,$result是ArrayToXML::CONVERT(array,....) 如何将xml文件添加到ZIP。我刚来拉拉维尔请帮帮我
问题内容: 我已经用python编写了一个库,并且希望它驻留在文件系统上的公共位置。 从我的脚本,我只想做: 现在,我知道为了执行此操作, 可以 执行以下操作: 但是我不想每次都这样做。 问题是:如何将文件夹永久添加到python的sys.path?我可以想象这将是一个环境变量,但我找不到它。 看起来应该很容易,但是我找不到解决方法。 问题答案: PYTHONPATH环境变量将执行此操作。