0

ftplib を使用して python で ftp サーバーにファイルをアップロードしようとしています。

これは私が持っているものです:

def ftp(cmd):

    cmd = cmd.split(' ')
    try: cmd[3]
    except: return 'host user password file (ftpdir)'
    try: session = ftplib.FTP(cmd[0],cmd[1],cmd[2])
    except: return 'wrong credentials/host'
    try: file = open(cmd[3], 'rb')
    except: return 'unable to reach file'
    try: cmd[4]
    except: pass
    else: 
        if cmd[4] !='':
            ftplib.FTP.cwd(ftpdir)
    name = file.split('\\')[-1]
    session.storbinary('STOR ' + name, file)     # send the file
    file.close()                                    # close file and FTP
    session.quit()

この関数には、「ホスト ユーザー パスワード ファイル ftpdir」の形式でコマンドを指定します。ここで、ftpdir は必要ありません。私が得るエラーはこれです:

Traceback (most recent call last):

  ...some lines of referring...

  File "C:\somedir\somefile.py", line 155, in ftp
    file = open(cmd[3],'rb')
TypeError: open() takes exactly 1 argument (2 given)

Pythonシェルのエントリとして特定の「cmd」を指定して「file = open(cmd[3], 'rb')」コマンドを実行すると、正常に動作します。

4

1 に答える 1

0

この質問は現在回答されています。問題は、正確に 1 つの引数を取る別の関数 open(arg) を定義したことです。その関数の名前を変更した後、すべてが正常に機能しました。

これを読んでくださった皆様、お時間をいただきありがとうございます。

于 2013-01-06T13:59:53.047 に答える