如何在VS Code的.py文件中执行命令下载MNIST数据集
问题原因
你代码里带!前缀的命令是Jupyter系列工具的专属魔法语法,仅能在.ipynb格式的笔记本文件中运行,普通Python解释器不识别该语法,因此放在.py文件里运行会直接报错。
解决方案
方案1:使用Python原生模块实现(更推荐,跨平台无额外依赖)
不需要调用外部系统命令,Windows/macOS/Linux都可以直接运行,代码如下:
import urllib.request import tarfile import os # 下载MNIST压缩包 url = "http://www.di.ens.fr/~lelarge/MNIST.tar.gz" file_path = "MNIST.tar.gz" if not os.path.exists(file_path): urllib.request.urlretrieve(url, file_path) # 解压压缩包 if os.path.exists(file_path): with tarfile.open(file_path, "r:gz") as tar: tar.extractall() # 可选:解压完成后删除原始压缩包 # os.remove(file_path)
方案2:通过subprocess模块调用系统命令
如果你确实需要执行系统的wget和tar命令,可以使用Python标准库的subprocess模块实现,代码如下:
import subprocess # 执行下载命令 subprocess.run(["wget", "www.di.ens.fr/~lelarge/MNIST.tar.gz"], check=True) # 执行解压命令 subprocess.run(["tar", "-zxvf", "MNIST.tar.gz"], check=True)
注意:该方案仅适用于自带wget、tar命令的macOS/Linux系统,Windows系统默认没有这两个命令,无法直接运行。
注意事项
- 运行脚本前确保你对当前工作目录有读写权限,避免下载或解压失败
- 如果链接失效,可以替换为MNIST官方的公开下载地址使用
内容的提问来源于stack exchange,提问作者user12
相关产品推荐
相关产品推荐

