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)

如果我尝试使用给定的'cmd'作为python shell中的条目的命令“file = open(cmd [3],'rb')”它工作正常。

4

1 回答 1

0

这个问题现在得到了解答。问题是我定义了另一个函数 open(arg) ,它只接受一个参数。更改该函数的名称后,一切正常。

感谢所有阅读本文的人的时间。

于 2013-01-06T13:59:53.047 回答