我試圖從ftp服務器下載文件,但我遇到了錯誤權限被拒絕的錯誤。IOError:[Errno 13]權限被拒絕 - ftplib
Traceback (most recent call last):
File "/Users/x34/Documents/Python/ftp_download.py", line 27, in <module>
download()
File "/Users/x34/Documents/Python/ftp_download.py", line 21, in download
with open(filename,'wb') as f:
IOError: [Errno 13] Permission denied: '/p012r018_5dt19900722_z20_30.tif.gz'
手動或使用FileZilla的下載工作正常,但我下面的腳本不
from ftplib import ftp
ftp = FTP(r'ftp.glcf.umd.edu')
ftp.login()
directory = 'glcf/Landsat/WRS2/p012/r018/p012r018_5dx19900722.TM-GLS1990'
filename = '/p012r018_5dt19900722_z20_30.tif.gz'
ftp.cwd(directory)
with open(filename,'wb') as f:
ftp.retrbinary('RETR' + filename,f.write)
ftp.close()
彼此音符......也許我看錯文檔 - http://docs.python.org/library/ftplib.html但我不完全明白的地方FTPLIB決定下載文件(默認下載目錄?)。是否有另一個模塊更適合此應用程序?
UPDATE
我要澄清的是,服務器上的文件名不包含前面的「/」。我只是補充說,因爲它似乎有助於找到正確的文件位置和名稱,因爲之前的嘗試在以下錯誤中結束: ftplib.error_perm:500未知命令。
的完整路徑,該文件是
ftp.glcf.umd.edu/glcf/Landsat/WRS2/p012/r018/p012r018_5dx19900722.TM-GLS1990/p012r018_5dt19900722_z20_30.tif.gz'
它看起來像你的腳本試圖下載的內容將文件保存在根目錄(/ ')你的文件系統。你有足夠的權限嗎? 它試圖用原始文件名保存文件,並在前面加上'/',從而在'/'處創建文件。 – 2012-08-10 23:43:02
添加/在前面的主要原因是,它似乎向前邁進了一步,因爲在它給我另一個錯誤之前,這是該追蹤的最後部分 - >「/Library/Frameworks/Python.framework/Versions/2.7 /lib/python2.7/ftplib.py「,第219行,在getresp中 raise error_perm,resp ftplib.error_perm:500未知命令。 – BJEBN 2012-08-10 23:58:45
嘗試在代碼中的「REPR」後添加空格字符。我已經更新了答案中的代碼。您將「REPR」與文件名連接起來,但正確的是:「REPR文件。txt「 – 2012-08-11 01:13:39