@TIGER001

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

gzipのunzip 仕方。

解決したいこと

gzipのunzip化をしたい。
スクリーンショット 2025-08-04 173351.png
スクリーンショット 2025-08-04 173401.png
errorはでませんが、gzipがunzipされません。

発生している問題・エラー

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[1], line 4
      1 import wget
      3 a = 'openethdata_eth_data.parquet.gzip'
----> 4 wget.download(a)

File ~\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\wget.py:526, in download(url, out, bar)
    524 else:
    525     binurl = url
--> 526 (tmpfile, headers) = ulib.urlretrieve(binurl, tmpfile, callback)
    527 filename = detect_filename(url, out, headers)
    528 if outdir:

File C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.11_3.11.2544.0_x64__qbz5n2kfra8p0\Lib\urllib\request.py:241, in urlretrieve(url, filename, reporthook, data)
    224 """
    225 Retrieve a URL into a temporary location on disk.
    226 
   (...)
    237 data file as well as the resulting HTTPMessage object.
    238 """
    239 url_type, path = _splittype(url)
--> 241 with contextlib.closing(urlopen(url, data)) as fp:
    242     headers = fp.info()
    244     # Just return the local path and the "headers" for file://
...
--> 377     raise ValueError("unknown url type: %r" % self.full_url)
    378 self.host, self.selector = _splithost(rest)
    379 if self.host:

ValueError: unknown url type: 'openethdata_eth_data.parquet.gzip'

または、問題・エラーが起きている画像をここにドラッグアンドドロップ

該当するソースコード

python

例)

import wget

a = 'openethdata_eth_data.parquet.gzip'
wget.download(a)

自分で試したこと

調べたりして。開封を試みしたがうまくいきませんでした。

0 likes

2Answer

Comments

gzipファイルは既にダウンロード済で実行ファイルを同じフォルダに配置済みと推測いたします。
その場合はwgetせずに解凍してあげればファイルが展開されます。
以下のようなコードでどうでしょうか。

import gzip
import shutil

with gzip.open('openethdata_eth_data.parquet.gzip', 'rb') as f_in:
    with open('openethdata_eth_data.parquet', 'wb') as f_out:
        shutil.copyfileobj(f_in, f_out)

wgetはweb上のファイルをダウンロードする仕組みですので、上のような状況であれば必要ありません。
仮にダウンロードと回答を続けて行いたい場合は以下のようになると思います。

import wget
import gzip
import shutil

# ① ダウンロードするURLを指定
url = 'https://example.com/openethdata_eth_data.parquet.gzip'  # ← 実際のURLに置き換えてください

# ② ファイルをダウンロード
filename = wget.download(url)

# ③ gzipファイルを解凍
output_filename = filename.replace('.gzip', '')  # 出力ファイル名(拡張子を除去)

with gzip.open(filename, 'rb') as f_in:
    with open(output_filename, 'wb') as f_out:
        shutil.copyfileobj(f_in, f_out)

print(f"\n解凍完了: {output_filename}")

いずれもAIに書いてもらったコードそのままなので内容はご精査ください。

0Like

Comments

  1. @TIGER001

    Questioner

    ありがとうございます。

Your answer might help someone💌