簡體   English   中英

從 FTP 文件夾下載所有文件時出現“權限被拒絕”錯誤

[英]"Permission denied" error from downloading all files from FTP folder

到目前為止,我已經從 FTP 站點獲得了我需要的文件的名稱。 請參閱下面的代碼。

from ftplib import FTP
import os, sys, os.path

def handleDownload(block):
     file.write(block)

ddir='U:/Test Folder'
os.chdir(ddir)
ftp = FTP('sidads.colorado.edu')
ftp.login()

print ('Logging in.')
directory = '/pub/DATASETS/NOAA/G02158/unmasked/2012/04_Apr/'

print ('Changing to ' + directory)
ftp.cwd(directory)
ftp.retrlines('LIST')

print ('Accessing files')

filenames = ftp.nlst() # get filenames within the directory
print (filenames)

我遇到麻煩的地方是將文件下載到文件夾中。 下面的代碼是我嘗試過的,但是由於在寫入文件之前未創建文件,我收到了權限錯誤。

for filename in filenames:
     local_filename = os.path.join('C:/ArcGis/New folder', filename)
     file = open(local_filename, 'wb')
     ftp.retrbinary('RETR '+ filename, file.write)
     file.close()

ftp.quit()

這是錯誤和回調。

在此處輸入圖像描述

目錄列表包括. 對文件夾的引用(可能還有..對父文件夾的引用)。

你必須跳過它,你不能下載它(他們)。

for filename in filenames:
    if (filename != '.') and (filename != '..'):
        local_filename = os.path.join('C:/ArcGis/New folder', filename)
        file = open(local_filename, 'wb')
        ftp.retrbinary('RETR '+ filename, file.write)
        file.close()

實際上你必須跳過列表中的所有文件夾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM