98

FTPにファイルをアップロードするためのスクリプトを作成したいと思います。

ログインシステムはどのように機能しますか?私はこのようなものを探しています:

ftp.login=(mylogin)
ftp.pass=(mypass)

およびその他のサインイン資格情報。

4

7 に答える 7

223

を使用するftplibと、次のように記述できます。

import ftplib
session = ftplib.FTP('server.address.com','USERNAME','PASSWORD')
file = open('kitten.jpg','rb')                  # file to send
session.storbinary('STOR kitten.jpg', file)     # send the file
file.close()                                    # close file and FTP
session.quit()

ftplib.FTP_TLSFTP ホストで TLS が必要な場合は、代わりに使用してください。


それを取得するには、次を使用できますurllib.retrieve

import urllib 

urllib.urlretrieve('ftp://server/path/to/file', 'file')

編集

現在のディレクトリを見つけるには、次を使用しますFTP.pwd()

FTP.pwd(): サーバー上の現在のディレクトリのパス名を返します。

ディレクトリを変更するには、次を使用しますFTP.cwd(pathname)

FTP.cwd(パス名): サーバー上の現在のディレクトリを設定します。

于 2012-09-27T04:11:43.093 に答える
6

Python には ftplib モジュールを使用する可能性が高いでしょう。

 import ftplib
 ftp = ftplib.FTP()
 host = "ftp.site.uk"
 port = 21
 ftp.connect(host, port)
 print (ftp.getwelcome())
 try:
      print ("Logging in...")
      ftp.login("yourusername", "yourpassword")
 except:
     "failed to login"

これにより、FTP サーバーにログインします。そこから何をするかはあなた次第です。あなたの質問は、本当に必要な他の操作を示していません。

于 2012-09-27T04:11:14.730 に答える
0

ここで同様の質問に答えたところ です。FTP サーバーが Fabric と通信できる場合は、Fabric にご連絡ください。raw を行うよりもはるかに優れていftpます。

からの FTP アカウントを持っているdotgeek.comので、これが他の FTP アカウントで機能するかどうかはわかりません。

#!/usr/bin/python

from fabric.api import run, env, sudo, put

env.user = 'username'
env.hosts = ['ftp_host_name',]     # such as ftp.google.com

def copy():
    # assuming i have wong_8066.zip in the same directory as this script
    put('wong_8066.zip', '/www/public/wong_8066.zip')

ファイルを名前を付けて保存し、ローカルfabfile.pyで実行します。fab copy

yeukhon@yeukhon-P5E-VM-DO:~$ fab copy2
[1.ai] Executing task 'copy2'
[1.ai] Login password: 
[1.ai] put: wong_8066.zip -> /www/public/wong_8066.zip

Done.
Disconnecting from 1.ai... done.

繰り返しますが、常にパスワードを入力したくない場合は、追加するだけです

env.password = 'my_password'
于 2012-09-27T04:13:08.940 に答える
-1

以下の機能を使用できます。まだテストしていませんが、うまくいくはずです。宛先はディレクトリ パスであり、ソースは完全なファイル パスであることを忘れないでください。

import ftplib
import os

def uploadFileFTP(sourceFilePath, destinationDirectory, server, username, password):
    myFTP = ftplib.FTP(server, username, password)
    if destinationDirectory in [name for name, data in list(remote.mlsd())]:
        print "Destination Directory does not exist. Creating it first"
        myFTP.mkd(destinationDirectory)
    # Changing Working Directory
    myFTP.cwd(destinationDirectory)
    if os.path.isfile(sourceFilePath):
        fh = open(sourceFilePath, 'rb')
        myFTP.storbinary('STOR %s' % f, fh)
        fh.close()
    else:
        print "Source File does not exist"
于 2016-08-26T11:24:02.323 に答える