[英]Python unable to decompress gzip file
我有一個帶有特殊文件結尾 (.dsx) 的文件,它基本上是一個 gzip 格式的 XML 文件。 我可以使用解壓縮該文件
$ gzip -S .dsx -d -c file.dsx
<prints my XML to the console>
我正在嘗試用 Python 做同樣的事情:
import sys
import gzip
def main():
file_path = sys.argv[1]
with gzip.open(file_path, 'rb') as f:
file_content = f.read()
# ...
if __name__ == "__main__":
main()
但我收到以下錯誤:
Traceback (most recent call last):
File "<truncated>\decode-dsx.py", line 17, in <module>
main()
File "<truncated>\decode-dsx.py", line 13, in main
file_content = f.read()
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.1520.0_x64__qbz5n2kfra8p0\lib\gzip.py", line 301, in read
return self._buffer.read(size)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.1520.0_x64__qbz5n2kfra8p0\lib\_compression.py", line 118, in readall
while data := self.read(sys.maxsize):
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.1520.0_x64__qbz5n2kfra8p0\lib\gzip.py", line 488, in read
if not self._read_gzip_header():
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.1520.0_x64__qbz5n2kfra8p0\lib\gzip.py", line 436, in _read_gzip_header
raise BadGzipFile('Not a gzipped file (%r)' % magic)
gzip.BadGzipFile: Not a gzipped file (b'PK'
我還嘗試通過添加.gz
行結尾直接調用模塊,然后調用:
python -m gzip -d .\file.gz
它產生相同的錯誤。
感謝@jasonharper 的提示,它確實只是一個普通的 zip 文件。
import sys
import zipfile
import os
def main():
file_path = sys.argv[1]
file_name = os.path.basename(file_path)
with zipfile.ZipFile(file_path, mode="r") as archive:
with archive.open(f'{file_name}.xml') as myfile:
print(myfile.read())
if __name__ == "__main__":
main()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.