2017-05-25 53 views
-3

這是我在這裏的第一篇文章,我希望我得到我的答案。 我想從我的ftp服務器打開各種鏈接,並在其中做一些東西。我的鏈接是http://mypage/photos0001/,/ photos002 /,/ photos003/etc. 我該如何編寫一個腳本來打開他們所有人,並在他們所有人中完成相同的工作? 我嘗試過: Link ='http://mypage/photos0001/'+ 1 要做類似循環的事情,但這當然不起作用。 有什麼幫助嗎?使用python打開各種鏈接

+0

你只是想打開這些鏈接,或者你想要做其他事情 – gowtham

+0

你能告訴我們你試過的代碼嗎? – DineshKumar

+0

這些文件夾中有一些文件(活動的.jpg圖像)。 /photos0001/img001.jpg,img002.jpg atc。我想打開所有文件夾並下載我的文件,但我不知道如何自動執行....我必須逐一嘗試path1 ='http:// mypage/photos0001 /',path2 ='xxxxx/photos0002'等等。 –

回答

0

不能看到您的實際FTP目錄樹,這可能有點困難,但希望以下可以讓你開始。

考慮在ftplib閱讀了有關詳細信息,(見Docs

import ftplib 

ftp = ftplib.FTP('mypage') 
ftp.login() 

for dir in ftp.nlst(): 
    if 'photos' in dir: 
     ftp.cwd('/mypage/{}'.format(dir)) 
     for file in ftp.nlst(): 
      if file.endswith('.jpg'): 
       try: 
        print('Attempting to download {}...'.format(file), end=' ') 
        with open(file, 'wb') as f: 
         ftp.retbinary('RETR ' + file, f.write, 8*1024) 
        print('[SUCCESS]') 
       except Exception as e: 
        print('[FAILED]') 
        print(e) 

ftp.close() 

所以讓我們嘗試和運行通過這到底是怎麼回事:

  1. 登錄到FTP服務器mypage
  2. 列出服務器根目錄中找到的所有目錄。
  3. 如果文件夾名稱包含'照片',則將工作目錄更改爲該文件夾。
  4. 列出此照片子文件夾中的所有文件。
  5. 如果文件以.jpg結尾,則可能是我們想要的圖片。
  6. 使用相同的名稱在您的系統上創建一個文件,並將圖片下載到它。
  7. 重複。

現在,如果目錄樹結果與您在此處描述的略有不同,那麼預計會遇到問題;但是,您應該可以修改示例以適合您的服務器。我知道這段代碼有效,因爲我可以用它遞歸下載ftp.debian.org.html文件。