Python code to access devices using the Windows Portable Devices API (e.g. Media Transfer Protocol - MTP - devices)
For now, only directory listing and transfer to the device is implemented.
- Get comtypes.
- Next you need let comtypes build the interfaces. I needed to fiddle around the generated code, to get it working:
- comment-in the
comtypes.client.GetModule(...)lines (or call both from Python console) - Then I had to define some parameters as in-out that were just out parameters. In
_1F001332_1A57_4934_BE31_AFFC99F4EE0A_0_1_0.py(found it inC:\Python27\Lib\site-packages\comtypes\gen):- In
IEnumPortableDeviceObjectIDs, in functionNextchange the parameterpObjIDsto['in', 'out'] - In
IPortableDeviceContent, in functionCreateObjectWithPropertiesAndDatachange the parameterppDatato['in', 'out'] - In
ISequentialStream, in functionRemoteReadchange the parameterspvandpcbReadto['in', 'out'] - In
IPortableDeviceResources, in functionGetStreamchange the parameterppStreamto['in', 'out']
- In
- Remove all bad asserts from the generated files (
_1F001332_1A57_4934_BE31_AFFC99F4EE0A_0_1_0.pyand_2B00BA2F_E750_4BEB_9235_97142EDE1D3E_0_1_0.py)- This seems not to be necessary anymore
- comment-in the
- Now you can:
- List devices with
PortableDevices.py ls - List directory contents with
PortableDevices.py ls [Device]/directory - Upload files with
PortableDevices.py cp source [Device]/directory - Download files with
PortableDevices.py get [Device]/directory target
- List devices with
This software is licensed under the MIT license.