具体代码如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
#!/usr/bin/python # coding=utf-8 import time import os def __ftp_upload(ftp,local,remote,isDel = False ): if os.path.isdir(local): for f in os.listdir(local): if os.path.isdir(local + f): try : ftp.cwd(remote + f) except : ftp.mkd(remote + f) print local + f __ftp_upload(ftp,local + f + '/' ,remote + f + '/' ,isDel) else : print remote + f print local + f fp = open (local + f, 'rb' ) ftp.storbinary( 'STOR ' + remote + f, fp, 4096 ) fp.close() if (isDel = = True ): os.remove(local) else : fp = open (local + f, 'rb' ) ftp.storbinary( 'STOR ' + remote + f, fp, 4096 ) fp.close() if (isDel = = True ): os.remove(local) def ftp_upload(host,port,username,password,local,remote,isDel = False ): ftp = FTP() try : ftp.connect(host,port) ftp.login(username,password) except : return False try : __ftp_upload(ftp,local,remote, False ) except Exception,e: print e ftp.close() return True def ftp_download(host,port,username,password,local,remote): ftp = FTP() ftp.connect(host,port) ftp.login(username,password) ret = False try : if os.path.isdir(local): for f in ftp. dir (remote): fp = open (local + f, 'wb' ) ftp.retrbinary( 'RETR ' + remote + f, fp.write, 4096 ) fp.close() else : fp = open (local, 'wb' ) ftp.retrbinary( 'RETR ' + remote, fp.write, 4096 ) fp.close() ret = True except Exception,e: print ( "download exception:\n" ,e) ftp.close() return ret if __name__ = = '__main__' : host = '*.*.*.*' port = '21' username = 'xxx' password = 'xxx' ftp_upload(host,port,username,password, '/home/pi/work/xx/' , '/home/ubuntu/xx/' , False ) print 'download' ftp_download(host,port,username,password, '/home/pi/work/xx/hh.txt' , '/home/ubuntu/xx/hh.txt' ) |
补充:下面看下Python ftp 上传和下载
工具
python3
ftplib
上传
1
2
3
4
5
6
7
8
|
from ftplib import FTP ftp = FTP(host = '127.0.0.1' , user = 'test' , passwd = 'test' ) #创建 ftp.cwd( '/home/test/ftp/' ) #上传路径 fd = open ( 'test.txt' , 'rb' ) #以只读的方式打开要上传的文件 ftp.storbinary( 'STOR test.txt' , fd) #上传文件 fd.close() ftp.quit() #退出登录 ftp.close() #关闭连接 |
下载
1
2
3
4
5
6
7
8
|
from ftplib import FTP ftp = FTP(host = '127.0.0.1' , user = 'test' , passwd = 'test' ) #创建 ftp.cwd( '/home/test/ftp/' ) #服务器下载路径 fd = open ( 'test.txt' , 'wb' ) #以只写的方式打开要下载的文件 ftp.retrbinary( 'RETR test.txt' , fd.write, 2048 ) #下载文件 fd.close() ftp.quit() #退出登录 ftp.close() #关闭连接 |
总结
以上所述是小编给大家介绍的jpython ftp 按目录结构上传下载的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:https://blog.csdn.net/liudijiang/article/details/82655957