2017-01-20 125 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

相關問題