簡體   English   中英

使用Python提取BZ2壓縮文件夾

[英]Extracting BZ2 compressed folder using Python

我正在嘗試在特定位置提取bz2壓縮文件夾。 我可以通過以下方式查看其中的數據:

handler = bz2.BZ2File(path, 'r')
print handler.read()

但我希望將壓縮文件夾中的所有文件提取到一個由用戶指定的位置,該位置維護文件夾的內部目錄結構。

我是這種語言的新手..請幫助...

像gzip一樣,BZ2只是單個文件的壓縮器,它不能歸檔目錄結構。 我懷疑您擁有的檔案文件是先由tar這樣的軟件創建的,然后由BZ2壓縮。 為了恢復“完整目錄結構”,請首先解壓縮您的Bz2文件,然后解壓縮(或等效)該文件。

幸運的是,Python tarfile模塊支持bz2選項,因此您可以一次性完成此過程。

bzip2是一種數據壓縮系統,可壓縮一個完整的文件。 它不會像PKZip一樣捆綁和壓縮文件。 因此,示例中的handler中只有一個文件,並且沒有“內部目錄結構”。

另一方面,如果您的文件實際上是壓縮的tar文件,則應查看Python的tarfile模塊 ,它將為您處理解壓縮。

您需要使用tarfile模塊解壓縮.tar.bz2文件...從文檔中獲取以下操作的方法:

import tarfile
tar = tarfile.open(path, "r:bz2")
for tarinfo in tar:
    print tarinfo.name, "is", tarinfo.size, "bytes in size and is",
    if tarinfo.isreg():
        print "a regular file."
        # read the file
        f = tar.extractfile(tarinfo)
        print f.read()
    elif tarinfo.isdir():
        print "a directory."
    else:
        print "something else."
tar.close()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM