簡體   English   中英

如何使用gzip提取特定文件

[英]How to extract specific file with gzip

我剛剛下載了一個.gz 文件,其中包含很多文件夾和文件,其中包括一個包含德語句子的 .txt 文件。

url = 'https://pcai056.informatik.uni-leipzig.de/downloads/corpora/{}'
filename = 'deu-be_web_2013_10K.tar.gz'

with gzip.open(filename, 'wb') as gz:
    download_url = url.format(filename)
    r = requests.get(download_url)
    gz.write(r.content)

我只需要 .txt 文件,我想知道如果可能的話,我如何只能提取這個文件。 我設法做的就是讀取整個文件,然后將其寫入 .txt 文件,但它很亂,並且包含很多不需要的文本。

with gzip.open(path, 'rb') as gz, open('something.txt', 'wb') as f:
    content = gz.read()
    f.write(content)

這不僅僅是一個 .gz 文件。 它是一個 .tar.gz 文件,其中 tar 是一種將多個文件合並為一個文件的歸檔格式,而 gzip 用於壓縮該單個文件。 gzip 只能提取單個 tar 文件,但是您需要一些東西來解釋 tar 文件格式以提取其中包含的文件之一。

使用tarfile ,而不是 gzip。 "r:gz"打開也會為你解壓。

暫無
暫無

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

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