簡體   English   中英

在Python中讀取壓縮的數據

[英]Reading gzipped data in Python

我有一個* .tar.gz壓縮文件,我想使用Python 2.7讀取。 該文件包含多個h5格式的文件以及幾個文本文件。 我是Python的新手。 這是我要適應的代碼:

      `subset_path='c:\data\grant\files'
      f=gzip.open(filename,'subset_full.tar.gz')
      subset_data_path=os.path.join(subset_path,'f')

第一條語句標識包含數據的文件夾的路徑。 第二條語句告訴Python打開一個特定的壓縮文件,第三條語句(希望)執行前兩個語句的聯接。

在此代碼下的幾行內容中,當Python嘗試使用'subset_data_path'分配時,出現錯誤。

這是怎么回事?

gzip模塊將僅打開一個已壓縮的文件,即my_file.gz 您的tar歸檔文件包含多個也已壓縮的文件。 這既需要解壓縮,也必須不壓縮。

嘗試改用tarfile模塊,請參閱https://docs.python.org/2/library/tarfile.html#examples

編輯:要添加更多有關已發生事件的信息,您已成功將壓縮的tarball打開到gzip文件對象中,該文件的工作原理幾乎與標准文件對象相同。 例如,您可以調用f.readlines() ,就像f是普通文件對象一樣,它將返回未壓縮的行。

但是,這實際上並未將歸檔文件解壓縮為文件系統中的新文件。 您沒有創建子目錄“ c:\\ data \\ grant \\ files \\ f”,因​​此當您嘗試使用路徑subset_data_path您正在尋找的目錄不存在。

以下應該工作:

import tarfile

subset_path='c:\data\grant\files'
tar = tarfile.open("subset_full.tar.gz")
tar.extractall(subset_path)
subset_data_path=os.path.join(subset_path,'subset_full')

暫無
暫無

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

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