0

我正在做一个项目,其中图像由我的 android 手机拍摄并存储在我的 SD 卡中的文件夹中。我正在编写一个 python 脚本,该脚本需要定期将文件夹从 SD 移动到我 PC 中的特定文件夹。手机和PC通过移动热点连接,我将在移动端运行一个http服务器。以前我曾经有脚本以电子邮件附件的形式将图像发送到我的 gmail 地址,但现在我想将整个文件夹发送到我不想使用互联网的 PC。我可以这样做吗?我将不胜感激任何形式的帮助。

让我更清楚自己。我已经在手机上运行了自己创建的 httpServer python 代码,该代码正在处理由 android 应用程序运行的 html 页面。我需要从我的 PC 连接到该移动服务器,我需要转到 SD 卡中名为“sb”的文件夹,路径在/mnt/sdcard/sb那里我需要找到所有包含字母“d”的文件夹并将这些文件夹完全从移动到我电脑中的一个目录。

浏览各种页面,我发现所有内容都是连接到服务器并从那里获取 HTML 页面或简单文件,但我找不到任何告诉我如何获取文件夹并将其存储在特定位置的信息。我真的需要在 29 日之前完成这项工作。我需要在 1 月 31 日交付产品。请给我一些好的帮助。

4

3 回答 3

0

为什么要为此使用python?你有没有尝试过

wget --mirror http://your_android_device/folder_to_sync/
于 2013-01-27T16:37:27.657 回答
0

你可以使用httplib。类似的东西:

import httplib

conn = httplib.HTTPConnection("http://device")
conn.request("GET", "/myfile.data")
resp = conn.getresponse()
data = resp.read()

另请参阅httplib 的 Python 文档

于 2013-01-27T16:47:57.323 回答
0

使用套接字编程。这是您可以使用它轻松发送文件的代码。

服务器.py

import os   
import sys,time 
import socket

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(("", port))
server_socket.listen(5)

client_socket, address = server_socket.accept()
print "Conencted to - ",address,"\n"


while (files):
    print '\nMaybe, pending work'
    for au in files:
        if (au.find('d')>-1):
            os.chdir(au)
            imgFiles = os.listdir(au)
            if (imgFiles[i].endswith('.jpg')):
                imgs=imgFiles[i]
                file_name = open(imgs,'rb')
                print file_name
                while True:
                    strng = file_name.read()
                    client_socket.sendall(strng)
                    if not strng:  break        
                file_name.close()
                #client_socket.send("done")
        else:
            time.sleep(2) 
time.sleep(5)
exit()

客户端.py

import socket,os
import time

client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(("address", port))

#folder name
fp = open(filename,'wb')
# image
while True:
strng = client_socket.recv(1024)
print "4"
if not strng: break
fp.write(strng)
print "5"
fp.close()
print "Data Received successfully"
exit()
于 2013-04-12T13:26:52.890 回答