久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

使用 Python 從包含給定字符串的 FTP 服務器下載文

Download files from an FTP server containing given string using Python(使用 Python 從包含給定字符串的 FTP 服務器下載文件)
本文介紹了使用 Python 從包含給定字符串的 FTP 服務器下載文件的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我正在嘗試從 FTP 服務器下載大量共享公共字符串 (DEM) 的文件.這些文件嵌套在多個目錄中.例如,Adair/DEM*Adams/DEM*

I'm trying to download a large number of files that all share a common string (DEM) from an FTP sever. These files are nested inside multiple directories. For example, Adair/DEM* and Adams/DEM*

FTP 服務器位于此處:ftp://ftp.igsb.uiowa.edu/gis_library/counties/,不需要用戶名和密碼.所以,我想遍歷每個縣并下載包含字符串 DEM 的文件.

The FTP sever is located here: ftp://ftp.igsb.uiowa.edu/gis_library/counties/ and requires no username and password. So, I'd like to go through each county and download the files containing the string DEM.

我在這里閱讀了很多關于 Stack Overflow 的問題和 Python 的文檔,但無法弄清楚如何使用 ftplib.FTP() 在沒有用戶名和密碼的情況下進入站點(其中不是必需的),我不知道如何在 ftplib 或 urllib 中 grep 或使用 glob.glob.

I've read many questions here on Stack Overflow and the documentation from Python, but cannot figure out how to use ftplib.FTP() to get into the site without a username and password (which is not required), and I can't figure out how to grep or use glob.glob inside of ftplib or urllib.

提前感謝您的幫助

推薦答案

好的,好像可以了.如果嘗試下載目錄或掃描文件,可能會出現問題.異常處理可以方便地捕獲錯誤的文件類型并跳過.

Ok, seems to work. There may be issues if trying to download a directory, or scan a file. Exception handling may come handy to trap wrong filetypes and skip.

glob.glob 無法工作,因為您在遠程文件系統上,但您可以使用 fnmatch 來匹配名稱

glob.glob cannot work since you're on a remote filesystem, but you can use fnmatch to match the names

代碼如下:它會下載TEMP目錄下所有匹配*DEM*的文件,按目錄排序.

Here's the code: it download all files matching *DEM* in TEMP directory, sorting by directory.

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 + " ...
")
    #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+" ...
")
            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 從包含給定字符串的 FTP 服務器下載文件的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Why I cannot make an insert to Python list?(為什么我不能插入 Python 列表?)
Insert a column at the beginning (leftmost end) of a DataFrame(在 DataFrame 的開頭(最左端)插入一列)
Python psycopg2 not inserting into postgresql table(Python psycopg2 沒有插入到 postgresql 表中)
list extend() to index, inserting list elements not only to the end(list extend() 索引,不僅將列表元素插入到末尾)
How to add element in Python to the end of list using list.insert?(如何使用 list.insert 將 Python 中的元素添加到列表末尾?)
TypeError: #39;float#39; object is not subscriptable(TypeError:“浮動對象不可下標)
主站蜘蛛池模板: 亚洲欧美视频一区 | 国产一区二区精品在线 | 伊人一区| 成人久久| 日日干日日 | 久久精品小短片 | 亚洲免费在线 | 国产精品久久久久久久久久免费 | 欧美精品一区二区三区四区五区 | 久久久久久亚洲国产精品 | 亚欧性视频| 久久久www| 国产成人99久久亚洲综合精品 | 97人人爱| 欧洲一区二区三区 | 国产乱码精品一区二区三区五月婷 | 91久久电影| www.五月天婷婷.com | 狠狠做六月爱婷婷综合aⅴ 国产精品视频网 | 欧美日韩亚洲国产综合 | 色婷婷久久综合 | 天天射美女 | 国产精品18hdxxxⅹ在线 | av免费网址 | 欧美不卡网站 | 欧美在线激情 | 草久久久 | 欧美日韩久久 | 亚洲国产一区二区三区 | 亚洲国产欧美在线人成 | 国产精品福利在线 | 欧美一级大片免费看 | 中文字幕av网站 | 一区二区三区视频 | 日韩国产精品一区二区三区 | 中文字幕亚洲精品 | 日本三级网址 | 一区二区三区日 | 国产成人精品一区二区三 | 中文字幕日韩欧美 | 色吊丝在线 |