up:: py
python3.4から使えるパス操作。
オブジェクト指向に基づき、os.pathを置き換えることができるらしい。
Is pathlib a viable replacement for os.path?
/
でパスを結合できたり、open()
なしでファイルに書き込み出来たりする。(path.write_text()
)
画像もwrite_bytes()
でいける。
pathlibが便利すぎてもうos.pathは使えない件 Python - Qiita
os書き換え
from pathlib import Path
Path('path')
でパスオブジェクトを作る。
os.makedirs
Path.mkdir(parents=True, exist_ok=True)
。
パスオブジェクトを作成してメソッドを実行。
os.path.join
Path.joinpath(a,b)
もしくは/
演算子。
Streamingでファイルが1kbくらいしかない
response_image = requests.get(image_url, stream=True)
response_image.raise_for_status() # レスポンスのステータスコードをチェック
for chunk in response_image.iter_content(chunk_size=8192):
image_path.write_bytes(chunk)
こんな感じの処理にしててなったやつ。
requestsでstreamにしていて、それを愚直にforで回すとforのたびに新たなファイルに書き込まれてしまう。
その場合は.open()
を使用し、追記モードでファイルを開く。
response_image = requests.get(image_url, stream=True)
response_image.raise_for_status() # レスポンスのステータスコードをチェック
with image_path.open("wb") as f: # "wb"モードでファイルを開く
for chunk in response_image.iter_content(chunk_size=8192):
f.write(chunk) # チャンクごとに追記