python zipfile 目录也被复制

发布于 2024-11-29 02:15:03 字数 304 浏览 0 评论 0原文

我正在尝试 python 的 zipfile 模块 我当前使用的代码是这样的:

z = zipfile.ZipFile("jar/algorithms.jar", "w")
z.write('directory/QuickSort.class')

问题是我的文件被添加到 jar 中,如下所示:

Algorithm.jar>directory>QuickSort.class

我想要的是: 算法.jar>QuickSort.class

我怎样才能实现这一点?

I'm experimenting with the zipfile module of python
the code i currently use is this:

z = zipfile.ZipFile("jar/algorithms.jar", "w")
z.write('directory/QuickSort.class')

The problem is that my file is added to the jar as following:

algorithms.jar>directory>QuickSort.class

What I want is:
algorithms.jar>QuickSort.class

How can I achieve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

静水深流 2024-12-06 02:15:03

您可以使用 arcname 参数 - 请参阅 http://docs.python.org /library/zipfile.html#zipfile.ZipFile.write

z.write("directory/QuickSort.class","QuickSort.class")

You can use the arcname parameter - see http://docs.python.org/library/zipfile.html#zipfile.ZipFile.write

z.write("directory/QuickSort.class","QuickSort.class")
请别遗忘我 2024-12-06 02:15:03

您可以提供您希望文件在存档中具有的名称作为 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()

另请参阅 zip 文件文档

You can supply the name you want the file to have in the archive as the second parameter to write like this:

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()

Also see the zipfile documentation.

满身野味 2024-12-06 02:15:03

考虑以下示例。这将在同一文件夹中创建文件夹的压缩存档,并从压缩输出文件中删除目录结构。

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()      

Consider the following example. This will create a zipped archive of a folder in that same folder and remove the directory structure from the zipped output file.

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()      
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文