2013-10-27 49 views
0

我一直在嘗試從FTP服務器下載文件。爲此,我找到了這個Python-FTP download all files in directory並進行了檢查。不管怎麼說,我提取我所需要的代碼,並顯示如下:無法在Python中打開文件「沒有這樣的文件或目錄」錯誤

import os 

from ftplib import FTP 

ftp = FTP("ftp.example.com", "exampleUsername", "examplePWD") 

file_names = ftp.nlst("\public_html") 

print file_names 

for filename in file_names: 
    if os.path.splitext(filename)[1] != "": 
     local_filename = os.path.join(os.getcwd(), "Download", filename) 
     local_file = open(filename, 'wb') 
     ftp.retrbinary('RETR ' + filename, local_file.write) 
     local_file.close() 

ftp.close() 

但是,當它試圖打開該文件,它口口聲聲說:

ftplib.error_perm: 550 Can't open CHANGELOG.php: No such file or directory 

我試過w+a+rw等等,我一直都會遇到同樣的錯誤。有任何想法嗎?

注意:我使用的是OSX Mavericks和Python 2.7.5。

這個問題可能已經被問過好幾次了,相信我,我研究並發現了其中的一些,但他們都沒有爲我工作。

  1. open() in Python does not create a file if it doesn't exist
  2. ftplib file select
+0

這似乎是一個特立獨行的問題 –

回答

1

它看起來像你列出目錄中的文件,然後讓基於返回的字符串的文件。 nlst()是否返回完整路徑或只是文件名?如果它的只是文件名而不是retrbinary,可能會期望「/ Foo/file」但是獲得「file」,並且在服務器的根目錄中可能沒有任何命名文件。

+0

我試過,你是對的,但沒有工作:/ – Tarik

+0

你是否得到相同的錯誤或不同的? – EternityForest

相關問題