さて、私は数時間だけこの作業に取り掛かってしまいました。数時間しかかかりませんでした。SFTPから引き出されたGZIPファイルをPython3で解凍する方法は、Mac OSのgunzipと同じですか?
私はデータストアからgzip圧縮されたCSVファイルを引っ張る、次のコードを持っている:
from ftplib import FTP_TLS
import gzip
import csv
ftps = FTP_TLS('waws-prod.net')
ftps.login(user='foo', passwd='bar')
resp = ftps.retrbinary('RETR data/WFSIV0606201701.700.csv.gz', gzip.open('WFSIV0606201701.700.csv.gz', 'wb').write)
ファイルがPWDに表示され、私も自分のMac解凍ツールを開くことができ、元のCSVが完全に解凍されます。私はUTF8のバイト文字列のように見えるものを手に入れる
f=gzip.GzipFile('WFSIV0606201701.700.csv.gz', 'rb')
s = f.read()
、しかし、UTF8デコーダ:
私はgzipのライブラリを使用して、このファイルを解凍しようとする場合は、私が解析するUTF8エンコードされた文字列を取得することはできません文字列を解析できません。
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte
しかし! FileZillaを使用してSFTPサーバーから直接ダウンロードした場合、上記のgzip.GzipFile
コードを実行すると完全に読み取ります。何かが私のダウンローダ/読者に間違っているはずですが、何が間違っているのかという手がかりはありません。
ワウ。愚かな私。ありがとう! – Dominooch