您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使用Python从包含给定字符串的FTP服务器下载文件

使用Python从包含给定字符串的FTP服务器下载文件

好的,似乎可以工作。如果尝试下载目录或扫描文件,可能会出现问题。异常处理可以很方便地捕获错误文件类型并跳过。

glob.glob由于您使用的是远程文件系统,因此无法正常工作,但是您可以使用fnmatch来匹配名称

这是代码:它下载*DEM*TEMP目录中匹配的所有文件,并按目录排序。

import ftplib,sys,fnmatch,os

output_root = os.getenv("TEMP")

fc = ftplib.FTP("ftp.igsb.uiowa.edu")
fc.login()
fc.cwd("/gis_library/counties")

root_dirs = fc.nlst()
for l in root_dirs:
    sys.stderr.write(l + " ...\n")
    #print(fc.size(l))
    dir_files = fc.nlst(l)
    local_dir = os.path.join(output_root,l)
    if not os.path.exists(local_dir):
        os.mkdir(local_dir)

    for f in dir_files:
        if fnmatch.fnmatch(f,"*DEM*"):   # cannot use glob.glob
            sys.stderr.write("downloading "+l+"/"+f+" ...\n")
            local_filename = os.path.join(local_dir,f)
            with open(local_filename, 'wb') as fh:
                fc.retrbinary('RETR '+ l + "/" + f, fh.write)

fc.close()
python 2022/1/1 18:35:46 有333人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶