我希望能够在手机和电脑之间传输文件.这款手机是一款可运行python 2.5.4的智能手机,而且该计算机运行的是windows xp(使用python 2.5.4和3.1.1).
我想在手机上安装一个简单的python程序,它可以将文件发送到计算机并从计算机中获取文件.电话端应仅在调用时运行,计算机端可以是服务器,但最好是不使用大量资源的东西.电话端应该能够弄清楚计算机上相关目录中的内容.
目前我通过在计算机上运行Windows Web服务器(ugh)以及带有socket.set_ default _ access_point的脚本(因此程序可以选择我的路由器的ssid或其他传输)和urlretrieve(到得到文件)在手机上.我正在使用smtplib通过电子邮件以其他方式发送文件.
无论是一般概念,现有计划还是介于两者之间的任何内容,我们将不胜感激.
最佳答案
我会使用paramiko.它安全快速而且非常简单.怎么回事?
原文链接:https://www.f2er.com/python/438988.html所以我们首先导入模块,然后指定日志文件:
import paramiko
paramiko.util.log_to_file('/tmp/paramiko.log')
我们打开一个SSH传输:
host = "example.com"
port = 22
transport = paramiko.Transport((host,port))
接下来我们要验证.我们可以用密码来做到这一点:
password = "example101"
username = "warrior"
transport.connect(username = username,password = password)
另一种方法是使用SSH密钥:
import os
privatekeyfile = os.path.expanduser('~/.ssh/id_rsa')
mykey = paramiko.RSAKey.from_private_key_file(privatekeyfile)
username = 'warrior'
transport.connect(username = username,pkey = mykey)
现在我们可以启动SFTP客户端:
sftp = paramiko.SFTPClient.from_transport(transport)
filepath = '/home/zeth/lenna.jpg'
localpath = '/home/zeth/lenna.jpg'
sftp.get(filepath,localpath)
现在让我们走另一条路:
filepath = '/home/zeth/lenna.jpg'
localpath = '/home/zeth/lenna.jpg'
sftp.put(filepath,localpath)
最后,我们需要关闭SFTP连接和传输:
sftp.close()
transport.close()
怎么样??我必须以此为例给出credit.