2017-01-20 88 views
0

我想将所有的.ini文件插入存档;它做得很好,但是当我打开我的.zip文件时,也有包含这些文件的路径文件夹。ZipFile也存档文件夹

这里是我的代码:

from path import Path 
import zipfile 

def main(): 

    folderul_cu_demouri = Path('/my/path/bla/bla') 
    nume_arhiva = 'demoz.zip' 
    arhiva = zipfile.ZipFile(nume_arhiva, 'w') 
    for demo in folderul_cu_demouri.files(pattern='*.ini'): 

     arhiva.write(demo) 

    arhiva.close() 


if __name__ == '__main__': 
    main()  

所以,当我打开我的zip文件,我得通过浏览/我的/路径/到/文件,也只有这样我可以看到我的.ini文件。我怎样才能做到这一点,所以只有.ini插入zip文件,没有目录?

感谢。 PS:我使用path.py来获得它们的扩展名。

回答

1

如果你的文件是直接位于存档文件夹,您可以BASENAME您的文件,并在arcname参数传递的名称,以便在归档中的名称为文件名,没有完整的路径:

arhiva.write(demo,arcname=os.path.basename(demo)) 

其他,你可以删除完整的文件路径,相对路径将被保留的第一个字符:

len_to_strip = len('/my/path/bla/bla')+1 

arhiva.write(demo,arcname=demo[:len_to_strip]) 
+0

我敢肯定,紫菜不希望在档案中保存_any_文件夹名称,他们只是想要一个完全平坦结构体。 –

+1

在这种情况下,第一行应答(这是最简单的一个) –

+0

是的,作品。谢谢! – nori

相关问题