Win10下Python如何访问USB连接安卓手机SD卡中的图片?
解决Win10下Python访问安卓手机SD卡图片的问题
Windows资源管理器里显示的This PC\Redmi Note 11\SD-карта\0.png是MTP协议的虚拟路径,不是传统的磁盘盘符路径,Python标准文件操作函数不支持MTP协议,所以识别不了,枚举驱动器也找不到目标设备。下面是几种可行的解决办法:
方法一:把SD卡映射为网络驱动器
这是最接近本地盘符操作的方式,步骤如下:
- 手机通过USB连接电脑,在手机弹窗里选择「文件传输(MTP)」模式
- 打开Windows资源管理器,找到Redmi Note 11下的
SD-карта,右键点击它选择「映射网络驱动器」 - 给它分配一个空闲盘符(比如Z:),确认完成映射
- 之后就可以像访问本地硬盘一样用盘符路径访问图片,Python代码示例:
file = r'Z:\0.png' # 用with语句确保文件正确关闭 with open(file, 'rb') as handle: img_content = handle.read() # 这里可添加图片处理逻辑,比如用PIL库打开
方法二:用支持MTP的Python库直接访问
如果不想映射盘符,可以用专门支持MTP的库,比如pymtp:
- 先安装库:
pip install pymtp
- 示例代码(需根据实际设备调整):
import pymtp # 建立MTP连接 mtp = pymtp.MTP() mtp.connect() # 遍历存储设备,找到SD卡 storage_list = mtp.get_storage_devices() sd_card = None for storage in storage_list: if 'SD-карта' in storage.name: sd_card = storage break if sd_card: # 获取SD卡下的0.png文件对象 file_obj = mtp.get_file_object(sd_card, '/0.png') # 读取文件内容到本地或直接处理 with open('local_copy.png', 'wb') as f: f.write(mtp.get_file_data(file_obj)) # 断开连接 mtp.disconnect()
注意:pymtp可能依赖系统MTP驱动,部分环境需额外调试。
方法三:临时复制到本地访问
如果只是临时需求,直接在Windows资源管理器里把SD卡上的0.png复制到本地硬盘(比如D盘),然后用你原本的本地路径代码访问即可,这种方法最简单,无需额外配置。
内容的提问来源于stack exchange,提问作者granular_bastard
相关产品推荐
相关产品推荐

