Я пытаюсь загрузить файл на 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, она будет работать нормально.
open
перезаписывается. - person Fredrick Brennan   schedule 06.01.2013open
(что является одной из причин, по которой пустойexcept
- плохая идея!). - person Blckknght   schedule 06.01.2013