从3个ftp站点下载文件 [英] download file from 3 ftp sites

查看:80
本文介绍了从3个ftp站点下载文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在文本文件中有一个ftp站点列表(例如:5),我需要从ftp站点下载最后创建的文件。这可能吗。这是我的代码:



  import  os 
< span class =code-keyword>来自 ftplib import FTP

ftp = FTP( xxx.xx.xx.xx1 USERNAME1 PASSWORD1
ftp = FTP( xxx.xx.xx.xx2 USERNAME2 PASSWORD2
ftp = FTP( xxx.xx.xx.xx3 USERNAME3 PASSWORD3
ftp = FTP( xxx.xx.xx.xx4 USERNAME4 PASSWORD4
ftp = FTP( xxx.xx.xx.xx5 USERNAME5 PASSWORD5

ftp.login()
ftp.retrlines( LIST

ftp.cwd( SmythIN / 2014-10-29)---这里我有一个按当前日期创建的文件夹...我怎么能传递当前日期文件夹我改变了目录。
ftp.cwd( subFolder 或ftp.cwd(folderOne / subFolder)

listing = []
ftp.retrlines( LIST,listing.append)
words = listing [ 0 ]。split( 8
filename = words [ - 1 ]。lstrip()

下载文件
local_filename = os.path.join(r c:\ myfolder,filename)
lf = open(local_filename, wb
ftp.retrbinary( RETR + filename,lf .write, 8 * 1024
lf.close()

解决方案

  import  time 

accounts =(
(< span class =code-string> xxx.xx.xx.xx1 USERNAME1 PASSWORD1 ),
xxx.xx.xx.xx2 USERNAME2 PASSWORD2),
xxx.xx.xx.xx3 USERNAME3 PASSWORD3),
xxx.xx.xx.xx4 USERNAME4 PASSWORD4),
xxx.xx.xx.xx5 USERNAME5 PASSWORD5 ),



TODAY = time.strftime( %Y-%m-%d ####### ########################

for 帐户 帐户:
ftp = FTP(*帐户) ###################################
ftp。 login()
ftp.retrlines( 列表 < -this语句看起来没用。

ftp.cwd( SmythIN / + TODAY) ############## ################# -----它在这里打破。
ftp.cwd( subFolder 或ftp.cwd (folderOne / subFolder)

listing = []
ftp.retrlines( LIST,listing.append)
words = listing [ 0 ]。split( 8
filename = words [ - 1 ] .lstrip()

下载文件
local_filename = os.path.join(r c:\ myfolder,filename)
打开(local_filename, wb as lf:
ftp.retrbinary( RETR + filename,lf.write, 8 * 1024









ftp.cwd(SmythIN /+ TODAY)################################ />


它不是所有ftp上的SmythIN它有不同的名称,如

ftp.cwd(X /+ TODAY)###### ##########################

ftp.cwd(Y /+ TODAY)##### ###########################

ftp.cwd(Z /+ TODAY)#### ############################



怎么写这个.. ....谢谢你dvance。


I have a list of ftp sites ( eg:5 ) in text file and i need to download the last created file from ftp sites. Is this possible. This is my code :

import os
from ftplib import FTP

ftp = FTP("xxx.xx.xx.xx1", "USERNAME1", "PASSWORD1")
ftp = FTP("xxx.xx.xx.xx2", "USERNAME2", "PASSWORD2")
ftp = FTP("xxx.xx.xx.xx3", "USERNAME3", "PASSWORD3")
ftp = FTP("xxx.xx.xx.xx4", "USERNAME4", "PASSWORD4")
ftp = FTP("xxx.xx.xx.xx5", "USERNAME5", "PASSWORD5")

ftp.login()
ftp.retrlines("LIST")

ftp.cwd("SmythIN/2014-10-29") --- here  i have a folder created by current  date ...how can i pass current date folder i change directory.
ftp.cwd("subFolder") # or ftp.cwd("folderOne/subFolder")

listing = []
ftp.retrlines("LIST", listing.append)
words = listing[0].split(None, 8)
filename = words[-1].lstrip()

# download the file
local_filename = os.path.join(r"c:\myfolder", filename)
lf = open(local_filename, "wb")
ftp.retrbinary("RETR " + filename, lf.write, 8*1024)
lf.close() 

解决方案

import time

accounts = (
    ("xxx.xx.xx.xx1", "USERNAME1", "PASSWORD1"),
    ("xxx.xx.xx.xx2", "USERNAME2", "PASSWORD2"),
    ("xxx.xx.xx.xx3", "USERNAME3", "PASSWORD3"),
    ("xxx.xx.xx.xx4", "USERNAME4", "PASSWORD4"),
    ("xxx.xx.xx.xx5", "USERNAME5", "PASSWORD5"),
)


TODAY = time.strftime("%Y-%m-%d")################################

for account in accounts:
    ftp = FTP(*account)####################################
    ftp.login()
    ftp.retrlines("LIST")#<-this statement looks useless.

    ftp.cwd("SmythIN/"+TODAY)################################----- it breaks in here.
    ftp.cwd("subFolder") # or ftp.cwd("folderOne/subFolder")

    listing = []
    ftp.retrlines("LIST", listing.append)
    words = listing[0].split(None, 8)
    filename = words[-1].lstrip()

    # download the file
    local_filename = os.path.join(r"c:\myfolder", filename)
    with open(local_filename, "wb") as lf:
        ftp.retrbinary("RETR " + filename, lf.write, 8*1024)





ftp.cwd("SmythIN/"+TODAY)################################

its not SmythIN on all ftps it has different names like
ftp.cwd("X/"+TODAY)################################
ftp.cwd("Y/"+TODAY)################################
ftp.cwd("Z/"+TODAY)################################

how to write this...... thanks in advance.


这篇关于从3个ftp站点下载文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆