python zipfile目录也被复制了

时间:2011-08-10 19:23:32

标签: python zip

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

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

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

algorithms.jar>目录> QuickSort.class

我想要的是: algorithms.jar> QuickSort.class

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分: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 documentation

答案 2 :(得分:0)

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

def helper(a):
    'helper function calculate beginning date of week'
    d = -1-a.weekday()
    d = 0 if d==-7 else d
    return (a + timedelta(days=d)).strftime('%Y %m %d %A')

# then you can do:
df.groupby(pd.to_datetime(df.index).to_series().apply(helper).to_list()).sum()