代码之家  ›  专栏  ›  技术社区  ›  user2503227

ftplib。error\u perm:553无法创建文件。(Python 2.4.4)

  •  1
  • user2503227  · 技术社区  · 7 年前

    我正在向我正在FTPing的用户的主目录写入内容,因此权限不应该是一个问题。FTP在FileZilla中工作。

    local_enable=YES 改变

    Debian4公司

    >>> f = ftplib.FTP('address', 'user', 'password')
    >>> f.cwd('/home/user/some/dir/')
    '250 Directory successfully changed.'
    >>> myfile = '/full/path/of/file.txt'
    >>> o = open(myfile, 'rb')
    >>> f.storbinary('STOR ' + myfile, o)
    Traceback (most recent call last):
    File "<stdin>", line 1, in ?
    File "/usr/lib/python2.4/ftplib.py", line 415, in storbinary
        conn = self.transfercmd(cmd)
      File "/usr/lib/python2.4/ftplib.py", line 345, in transfercmd
        return self.ntransfercmd(cmd, rest)[0]
      File "/usr/lib/python2.4/ftplib.py", line 327, in ntransfercmd
        resp = self.sendcmd(cmd)
      File "/usr/lib/python2.4/ftplib.py", line 241, in sendcmd
        return self.getresp()
      File "/usr/lib/python2.4/ftplib.py", line 216, in getresp
        raise error_perm, resp
    ftplib.error_perm: 553 Could not create file.
    

    知道它为什么失败吗?

    1 回复  |  直到 7 年前
        1
  •  4
  •   Martin Prikryl    7 年前

    您不是在向主目录写信,而是在向 /full/path/of/file.txt :

    myfile = '/full/path/of/file.txt'
    ...
    f.storbinary('STOR ' + myfile, o)
    

    您只能将文件名与 STOR 命令(一旦“cwd”已经是正确的目标路径):

    f.cwd('/home/user/some/dir/')
    f.storbinary('STOR file.txt', o)
    

    或远程主机的正确绝对路径:

    f.storbinary('STOR /home/user/some/dir/file.txt', o)