自动上传到树莓派

版权声明: https://blog.csdn.net/leida_wt/article/details/78733544

这是一个用python脚本通过sftp快速上传文件夹到树莓派的脚本
可以直接拖拽,会自动上传到树莓派./Desktop/文件夹下
按需修改代码中地址和登录密码即可使用

安装依赖

pip instal paramiko

autoftp.py

#! python3
# -*- coding:utf-8 -*- 
import paramiko
import sys 
import os
import os.path
socks=('192.168.2.100',22)#此处写树莓派的地址
testssh=paramiko.Transport(socks)
testssh.connect(username='pi',password='raspberry')#ssh账号密码
sftptest=paramiko.SFTPClient.from_transport(testssh)
rootdir=sys.argv[1]
rootnamelen=len(rootdir)-len(rootdir.split('\\')[-1])

if os.path.isdir(rootdir) and not rootdir[rootnamelen:] in sftptest.listdir("./Desktop/"):
    tempdir=("./Desktop/"+rootdir[rootnamelen:]).replace('\\','/')
    print("mkdir: ",tempdir)
    sftptest.mkdir(tempdir)
    for parent,dirnames,filenames in os.walk(rootdir):
        for dirname in  dirnames:
            print ("parent is:" + parent+ "  dirname is:" + dirname)
            tempdir=("./Desktop/"+parent[rootnamelen:]+'/'+dirname).replace('\\','/')
            print("mkdir: ",tempdir)
            sftptest.mkdir(tempdir)
        for filename in filenames:
            print ("Upload File: parent is:" + parent +"  filename is:" + filename)
            sftptest.put(parent+'\\'+filename,("./Desktop/"+parent[rootnamelen:]+'/'+filename).replace('\\','/'))
if not os.path.isdir(rootdir):
    sftptest.put(rootdir,"./Desktop/"+rootdir.split('\\')[-1])
    print("upload ",rootdir.split('\\')[-1],"succeed")
else:
    print("dir is already exist")
sftptest.close()
testssh.close()
print("done, sftp closed")

下面是一个win 下的bat脚本实现拖拽功能

注意将目录换为autoftp.py所在目录

echo %1
E:
cd E:XXX\XXX
py -3 autoftp.py %1
pause

然后直接将目标文件夹拖到这个bat上就可以实现自动上传了!

猜你喜欢

转载自blog.csdn.net/leida_wt/article/details/78733544
今日推荐