[英]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.