python zipfile 目录也被复制了
我正在尝试使用Python的zipfile模块,
我现在使用的代码是:
z = zipfile.ZipFile("jar/algorithms.jar", "w")
z.write('directory/QuickSort.class')
问题是,我的文件被添加到jar包中的方式是:
algorithms.jar>directory>QuickSort.class
我想要的效果是:
algorithms.jar>QuickSort.class
我该怎么做才能实现这个呢?
3 个回答
0
考虑下面这个例子。这个例子会在一个文件夹里创建一个压缩文件,并且在压缩文件中去掉原来文件夹的目录结构。
import os
import zipfile
mydir = r'c:\temp\filestozip' #all the files in this directory will be archived
zf = zipfile.ZipFile(mydir + '\\myzipfile.zip', "w")
for dirname, subdirs, files in os.walk(mydir):
for filename in files:
if not filename.endswith('.zip'): #
zf.write(os.path.join(dirname, filename),arcname=filename)
zf.close()
0
你可以在调用write
的时候,作为第二个参数提供你希望文件在压缩包中显示的名字,像这样:
In [39]: z = zipfile.ZipFile("jar/algorithms.jar", "w")
In [40]: z.printdir()
File Name Modified Size
In [41]: z.write("directory/QuickSort.class", "QuickSort.class")
In [42]: z.printdir()
File Name Modified Size
QuickSort.class 2011-08-10 15:26:47 0
In [43]: z.close()
另外,你可以查看一下zipfile的文档,里面有更多信息。
6
你可以使用arcname这个参数,具体可以查看这个链接:http://docs.python.org/library/zipfile.html#zipfile.ZipFile.write
z.write("directory/QuickSort.class","QuickSort.class")