免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7441 | 回复: 11
打印 上一主题 下一主题

【求助】怎们用FTPlib上传整个目录,急!!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-11 14:46 |只看该作者 |倒序浏览
在教程中我看到怎么上传一个文件,但现在我想上传整个目录的话该怎么做,是不是要先读出有哪些文件,软后一个一个传?
好像实现起来很复杂呀,有写好的代码吗?
先谢谢了

论坛徽章:
0
2 [报告]
发表于 2008-05-11 19:51 |只看该作者
一个个传也不麻烦吧?

论坛徽章:
0
3 [报告]
发表于 2008-05-12 09:46 |只看该作者
可是如果是多层目录呢,太多的文件该怎么办?
有写好的上传目录的lib吗?

论坛徽章:
0
4 [报告]
发表于 2008-05-12 15:57 |只看该作者
先遍历本地目录,可能使用os.walk或os.path.walk,两者略有差异。然后对每个文件或目录决定是上传还是创建目录。好象还没有简单的自动上传的模块。

论坛徽章:
0
5 [报告]
发表于 2008-05-12 21:34 |只看该作者
按照limodou 的思路写的,没有测试不知道能不能工作
from ftplib import FTP
import os
ftp=FTP('')
for d in os.walk('g:/test'):
    ftp.mkd(d[0])
    ftp.cwd(d[0])
    for cdir in d[1]:
        ftp.mkd(cdir)
    for f in d[2]:
        ftp.ftp.storbinary(f)

论坛徽章:
0
6 [报告]
发表于 2008-05-13 08:35 |只看该作者
差不多,可能再加上错误处理就差不多了。比如后台已经有目录存在会不会报错。这个试一试就知道了。

论坛徽章:
0
7 [报告]
发表于 2008-05-13 15:09 |只看该作者
非常感谢luffy.deng的支持!
很简洁的代码!

好像有一点小问题:粗体的创建目录不需要,前面已经建好了
from ftplib import FTP
import os
ftp=FTP('')
for d in os.walk('g:/test'):
    ftp.mkd(d[0])
    ftp.cwd(d[0])
    for cdir in d[1]:
        ftp.mkd(cdir)

    for f in d[2]:
        ftp.ftp.storbinary(f)


十分感谢!

论坛徽章:
0
8 [报告]
发表于 2008-05-13 21:32 |只看该作者
子目录还是要建吧?每次子目录中第一个建重复了,加上已有目录创建错误处理就行了

论坛徽章:
0
9 [报告]
发表于 2008-05-14 14:59 |只看该作者
d[0]好像是一个目录结构,eg:"d[0] == AB_8_5_0\folder", 那mkd(d[0])就会出错,怎么只得到后面的目录名呢?

论坛徽章:
0
10 [报告]
发表于 2008-05-14 15:02 |只看该作者
请问这个错误处理怎么做才好呢,呵呵,我是个菜鸟,请多多指点!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP