Файл Python ftplib open () TypeError

Я пытаюсь загрузить файл на ftp-сервер с помощью python, используя ftplib.

Вот что у меня есть:

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)

Если я попробую команду «file = open (cmd [3], 'rb')» с заданным «cmd» в качестве записи в оболочке python, она будет работать нормально.


person user1952084    schedule 06.01.2013    source источник
comment
Как выглядят ваши операторы импорта? Мне кажется, что определение функции open перезаписывается.   -  person Fredrick Brennan    schedule 06.01.2013
comment
Действительно ли ваш код такой, каким вы его включили? Кажется, что это исключение должно быть съедено блоком _1 _ / _ 2_ вокруг вызова open (что является одной из причин, по которой пустой except - плохая идея!).   -  person Blckknght    schedule 06.01.2013
comment
О боже, теперь я это вижу. Я определил другую функцию с помощью open ... Спасибо @frb. К сожалению, сейчас он работает нормально.   -  person user1952084    schedule 06.01.2013


Ответы (1)


На этот вопрос теперь дан ответ. Проблема заключалась в том, что я определил другую функцию open (arg), которая принимает ровно один аргумент. После изменения имени этой функции все заработало.

Спасибо за уделенное время всем, кто это читал.

person user1952084    schedule 06.01.2013