久久久久久久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:“浮動對象不可下標)
主站蜘蛛池模板: 成人不卡视频 | 久久久精品 | 亚洲一区二区三区高清 | 中文字幕日韩一区二区 | 在线毛片网 | 欧美日韩视频一区二区 | 中文字幕亚洲欧美日韩在线不卡 | 亚洲国产精品久久久久秋霞不卡 | 国产美女在线观看 | 欧洲精品久久久久毛片完整版 | 精品一二三区在线观看 | 国产精品视频在线播放 | 色狠狠一区 | 亚洲精品天堂 | 人人看人人搞 | 欧美日韩毛片 | 久久国产一区二区 | 国产成人网 | 精品视频国产 | 日韩一区二区免费视频 | 伊人影院在线观看 | 538在线精品 | 欧洲成人免费视频 | 性欧美hd | av网站观看 | 亚洲综合在线播放 | 久久精品国产一区二区电影 | 精品www | 91精品久久久久久久久 | 日韩欧美网| 国产在线精品一区二区三区 | 一区二区三区高清 | 国产一区二区三区不卡av | 日本高清在线一区 | 亚洲国产成人在线观看 | 午夜精品久久久久久久99黑人 | 婷婷色国产偷v国产偷v小说 | 亚洲+变态+欧美+另类+精品 | 亚洲精品乱码 | 欧美在线视频观看 | 国产午夜三级一区二区三 |