如何從標準輸入中逐行讀取壓縮內容?我a.gz在當前目錄中有一個包含 UTF-8 內容的 gzip 文件。場景一:使用gzip.open(filename)作品。我可以打印解壓縮的線條。with gzip.open('a.gz', 'rt') as f: for line in f: print(line)# python3 my_script.py場景2:我想從標準輸入讀取 gzip 壓縮的內容。所以我cat將 gzip 壓縮文件作為以下腳本的輸入。with gzip.open(sys.stdin, mode='rt') as f: for line in f: print(line)# cat a.gz | python3 script.py但是對于方法 2,我收到以下錯誤:Traceback (most recent call last): File "script.py", line 71, in <module> for line in f: File "....../python3.6/gzip.py", line 289, in read1 return self._buffer.read1(size) File "....../python3.6/_compression.py", line 68, in readinto data = self.read(len(byte_view)) File "....../python3.6/gzip.py", line 463, in read if not self._read_gzip_header(): File "....../python3.6/gzip.py", line 406, in _read_gzip_header magic = self._fp.read(2) File "....../python3.6/gzip.py", line 91, in read self.file.read(size-self._length+read) File "....../python3.6/codecs.py", line 321, in decode (result, consumed) = self._buffer_decode(data, self.errors, final)UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte
Python:從標準輸入讀取 gzip
慕婉清6462132
2021-08-14 16:53:34