Python自动脚本文件传输

时间:2015-12-06 14:08:19

标签: android python

我正在寻找一种解决方案,用于在连接此设备后将所有文件从硬盘驱动器上的特定目录复制到Android手机上的特定或非特定目录。

我希望这些文件在连接到计算机并运行.py文件后自动移动(或至少复制)到我的手机。

我有windows 7和python 2.7

我是从另一个答案中尝试这个,但我无法理解,因为解释很少,因此我无法让它发挥作用。

编辑:我已经想出如何在文件夹之间传输文件,但我想要我的手机。那么如何解决我的系统错误,找不到手机的路径,我会相信我的问题。代码工作正常,问题是路径。

这是我的代码:

import os
import shutil
sourcePath = r'C:\Users\...\What_to_copy_to_phone'
destPath = r'Computer\XT1032\Internal storage'
for root, dirs, files in os.walk(sourcePath):

#figure out where we're going
dest = destPath + root.replace(sourcePath, '')

#if we're in a directory that doesn't exist in the destination folder
#then create a new folder
if not os.path.isdir(dest):
    os.mkdir(dest)
    print 'Directory created at: ' + dest

#loop through all files in the directory
for f in files:

    #compute current (old) & new file locations
    oldLoc = root + '\\' + f
    newLoc = dest + '\\' + f

    if not os.path.isfile(newLoc):
        try:
            shutil.copy2(oldLoc, newLoc)
            print 'File ' + f + ' copied.'
        except IOError:
            print 'file "' + f + '" already exists'

我很抱歉我很少,但我以为我已经解决了。

3 个答案:

答案 0 :(得分:1)

理论上,无法使用驱动器号访问手机的内部存储器,因为Android连接为MTP设备,而不是大容量存储设备。但是,有一些奇怪的解决方案:

  1. 启动手机并获得一个应用程序,该应用程序支持"海量存储"
  2. 如果您不能root,并且(仅当)两台计算机在同一个网络上,请在您的手机中运行FTP服务器,然后您可以通过ftp访问文件副本。
  3. 但是对于你的情况,我建议adb - adb push C:\src /phone_destination是最好的解决方案。你可以谷歌并轻松找到在python中执行此操作的方法。

答案 1 :(得分:0)

Google提供adb-sync,也可以在python中使用。这允许Android设备上的文件备份/同步到PC。

以下github repo提供了有关如何设置过程的说明,即:启用USB调试等...但是我建议安装15秒adb安装程序,而不是下载/安装大量Android SDK以获取adb。

adb-sync:https://github.com/google/adb-sync
15秒ADB安装程序:https://forum.xda-developers.com/showthread.php?t=2588979

答案 2 :(得分:0)

回答得有点晚了,但是我使用SSH证书和crontab对我的本地IP运行ping命令,并将其通过管道传输到scp递归副本。它将复制所有更改。尚无问题,并且已经连续运行了4年。我一生无法找到正在运行的命令行。