我正在尝试使用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)
如果我尝试使用命令“file = open(cmd [3],'rb')”将一个给定的'cmd'作为python shell中的条目,它可以正常工作。
答案 0 :(得分:0)
现在回答这个问题了。问题是我定义了另一个open(arg)函数,该函数只是一个参数。更改该功能的名称后,一切正常。
感谢所有阅读本文的人。