2017-09-24 25 views
-1

當我運行這段代碼:第一交互ftp.cwd()我不理解的錯誤

for i in range(len(ftp_folders)): #ftp_folders[] list 

    ftp.cwd(ftp_folders[i]) #first interaction __> ftp.folders[Templates] 
    print(ftp.pwd()) #entering int the folder 
    print('entering in : ',ftp_folders[i]) # 1. Templates 

    ftp.cwd(ftp_folders[i]) #ERROR WHY?? 
    ftp.retrlines('LIST') 

for循環崩潰。 我可以在ftp_folders [I](模板),但運行ftp.cwd()時,它崩潰

誤差的第一文件夾輸入:

/home/pi/Templates 

進入:模板

Traceback (most recent call last): 
    File "C:\Users\peces\Documents\python\exercises\ftp\ping.pyw", line 47, in <module> ftp.cwd(ftp_folders[i]) 
File "C:\Users\peces\AppData\Local\Programs\Python\Python36-32\lib\ftplib.py", line 629, in cwd 
    return self.voidcmd(cmd) 
File "C:\Users\peces\AppData\Local\Programs\Python\Python36-32\lib\ftplib.py", line 276, in voidcmd 
    return self.voidresp() 
    File "C:\Users\peces\AppData\Local\Programs\Python\Python36-32\lib\ftplib.py", line 249, in voidresp 
    resp = self.getresp() 
    File "C:\Users\peces\AppData\Local\Programs\Python\Python36-32\lib\ftplib.py", line 244, in getresp 
    raise error_perm(resp) 
ftplib.error_perm: 550 Templates: No such file or directory 

沒有這樣的文件或目錄?我無法解釋。確定問題是其他.. ftp.cwd(ftp_folders [i])作爲錯誤運行..並知道爲什麼。

有些幫助嗎?

+0

模板存在,實際上是腳本進入文件夾:/ home/pi/Templates – donostialdea

回答

0

您目前執行以下操作:

  • 改變遠程目錄Templates

    • ,因爲它是一個相對路徑,這改變了你的目錄相對於您在登錄時都在目錄中。
  • 打印您的工作目錄;

  • 你現在試圖cwd Templates再次

    • 這是一個相對路徑,您試圖更改爲Templates子目錄Templates目錄的你已經英寸

請注意,到CWD的路徑的格式爲「但通常它們支持:

  • /開頭的路徑表示絕對路徑;而
  • 路徑/開始指示相對於當前PWD
+0

感謝您的回答。是的,你是對的我嘗試重新進入同一個文件夾。但是當我複製代碼時,我忘了給第二個人寫評論:#ftp.cwd(ftp_folders [i])。對不起評論這條線,我找到了同樣的錯誤。 – donostialdea

-1

確定我得到它的路徑。

在迭代結束時,我不得不寫下:ftp.cwd('../')以返回目錄。寫我可以回到目錄並列出「基本」文件夾中的每個文件夾:/ home/pi。

結果,再加上增加更多的代碼,它甾體抗炎藥:

for i in range(len(ftp_folders)): 
    print('print before change directory') 
    print(ftp.cwd(ftp.pwd()+'/'+ftp_folders[i])) 
    print(ftp.pwd()) 
    print('entering in : ',ftp_folders[i]) 
    #ftp.cwd('Templates') 
    #ftp.cwd(ftp_folders[i]) 
    ftp.retrlines('LIST') 
    ftp.cwd('../') 

現在它運行! 非常感謝@donkopotamus

+1

如果答案是正確的,請將其標爲,不要發佈回答說答案是正確的:-) – donkopotamus

+0

再次感謝,我標記答案是正確的。好。沒有更多的回答回答是正確的。謝謝 – donostialdea

+1

不,你沒有把答案標記爲正確。您必須勾選答案旁邊的複選標記。現在請看https://stackoverflow.com/help/someone-answers –