我正在尝试使用Python的zipfile模块。 我目前使用的代码如下:
z = zipfile.ZipFile("jar/algorithms.jar", "w")
z.write('directory/QuickSort.class')
问题是我的文件被添加到jar包中,如下所示:
algorithms.jar>directory>QuickSort.class
我想要的是: algorithms.jar>QuickSort.class
我该怎么做?
z.write("directory/QuickSort.class","QuickSort.class")
您可以将想要在存档中的文件命名作为第二个参数传递给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文档。
arcname = os.path.basename(os.path.abspath(path))
- sandinmyjointsimport 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()