使用Linux终端或Python复制Android MTP文件;错误操作不支持
我正在尝试创建一个自己的Python脚本来备份Android手机的镜像文件。我可以看到Android设备已经成功连接,并且可以通过nautilus(一个文件管理器)来移动文件,但在命令行界面(CLI)中却不行。
在命令行中出现的错误是“操作不支持”。
hkhrais@Hkhrais:/run/user/1000/gvfs/mtp:host=%5Busb%3A002%2C006%5D/Phone/Download$ cp DSC03951.JPG /home/hkhrais/Desktop/
cp: cannot open ‘DSC03951.JPG’ for reading: Operation not supported
python代码
try:
shutil.copyfile('/run/user/1000/gvfs/mtp:host=%5Busb%3A002%2C006%5D/Phone/Download/DSC03951.JPG', "/home/hkhrais/Desktop/test")
except:
raise
Traceback (most recent call last):
File "scriptt.py", line 33, in <module>
main()
File "scriptt.py", line 18, in main
shutil.copyfile(img, "/home/hkhrais/Desktop/test")
File "/usr/lib/python2.7/shutil.py", line 82, in copyfile
with open(src, 'rb') as fsrc:
IOError: [Errno 95] Operation not supported: '/run/user/1000/gvfs/mtp:host=%5Busb%3A002%2C006%5D/Phone/Download/DSC03951.JPG'
Android 4.2.2 Python 2.7 Ubuntu 14.4
有没有什么想法或者其他的方法呢?
2 个回答
2
试试用PTP(我在用MTP的时候也遇到过同样的错误),但是PTP可以正常工作。在设置里,你可以改变安卓手机连接到电脑时的显示方式,安卓5有两个选项,PTP和MTP。
5
用 gvfs-copy
来代替 cp
呢。比如说:
gvfs-copy "mtp://[usb:002,06]/Phone/Download/DSC03951.JPG" /home/hkhrais/Desktop/
如果你想在 Python 里执行这个命令,可以用 os.system
:
import os
os.system('gvfs-copy "mtp://[usb:002,06]/Phone/Download/DSC03951.JPG" /home/hkhrais/Desktop/')