具体代码如下所示:
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