2017-05-25 12 views
-3

これは私の最初の投稿です。 私は自分のftpサーバーからさまざまなリンクを開き、その中にいくつかのものを入れたいと思っています。私のリンクはhttp://mypage/photos0001/、/ photos002 /、/ photos003 /などです どうすればそれらをすべて開き、それらのすべてで同じ仕事をすることができますか? 私は試しました: リンク= 'http://mypage/photos0001/' + 1 ループのようにするには、もちろんこれは機能しません。 助けてください?pythonを使用してさまざまなリンクを開く

+0

これらのリンクを開いたり、他の何かをしたいだけですか? – gowtham

+0

試したコードを教えてください。 – DineshKumar

+0

これらのフォルダの中には、いくつかのファイル(実際には.jpg画像)があります。 /photos0001/img001.jpg、img002.jpg atc。私はすべてのフォルダを開き、私のファイルをダウンロードしたいが、私はそれを自動的に行う方法を知らない....私は1つ1つpath1 = 'http:// mypage/photos0001 /'、path2 = 'xxxxx/photos0002'等々。 –

答えて

0

あなたの実際のFTPディレクトリツリーを確認することはできませんが、これは少し難しいかもしれませんが、うまくいけば次のようなことができます。

  1. ログFTPサーバmypageにして:

    はそれでは、試してみて、ここで何が起こっているかを介して実行しましょう

    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() 
    

    Docsを参照してください)詳細はftplib上に読んで考えてみましょう。

  2. サーバーのルートディレクトリにあるすべてのディレクトリを一覧表示します。
  3. フォルダ名に「写真」が含まれている場合は、作業ディレクトリをそのフォルダに変更します。
  4. この写真のサブフォルダにあるすべてのファイルを一覧表示します。
  5. ファイルが.jpgで終わる場合は、おそらく私たちが望む写真です。
  6. システム上に同じ名前のファイルを作成し、そのファイルに画像をダウンロードします。
  7. を繰り返します。

ここで、ディレクトリツリーがここで使用するように記述されているものとは多少異なる場合があります。ただし、サーバーに合わせてこの例を変更できる必要があります。私はftp.debian.orgから.htmlファイルを再帰的にダウンロードするためにこのコードを使用できるようになったので、このコードが動作することを知っています。

関連する問題