下面一段代码,从下载,解压再到装载数据一气呵成,动作毫不拖泥带水。非常漂亮的一段代码
from pathlib import Path
import requests
DATA_PATH = Path("data")
PATH = DATA_PATH / "mnist"
PATH.mkdir(parents=True, exist_ok=True)
URL = "https://github.com/pytorch/tutorials/raw/master/_static/"
FILENAME = "mnist.pkl.gz"
if not (PATH / FILENAME).exists():
content = requests.get(URL + FILENAME).content
(PATH / FILENAME).open("wb").write(content)
import pickle
import gzip
with gzip.open((PATH / FILENAME).as_posix(), "rb") as f:
((x_train, y_train), (x_valid, y_valid), _) = pickle.load(f, encoding="latin-1")
这段代码的亮点是对pathlib库的Path模块的应用。如果使用python自带的open函数获取文件实例,然后再做read和write操作,那代码估计就要冗长得多了。