我有一个非常简单的Python程序,可以正常工作:
from ftplib import FTP
ftp = FTP('ftp.unicamp.br')
ftp.login()
ftp.cwd('pub/libreoffice/flatpak/latest/')
但是,如果我从该路径中删除结尾的斜杠,则会出现此异常:
ftp.cwd('pub/libreoffice/flatpak/latest') # no trailing slash
# Traceback (most recent call last):
# File "foo.py", line 6, in <module>
# ftp.cwd('pub/libreoffice/flatpak/latest')
# File "/home/ian/.asdf/installs/python/3.7.0/lib/python3.7/ftplib.py", line 631, in cwd
# return self.voidcmd(cmd)
# File "/home/ian/.asdf/installs/python/3.7.0/lib/python3.7/ftplib.py", line 278, in voidcmd
# return self.voidresp()
# File "/home/ian/.asdf/installs/python/3.7.0/lib/python3.7/ftplib.py", line 251, in voidresp
# resp = self.getresp()
# File "/home/ian/.asdf/installs/python/3.7.0/lib/python3.7/ftplib.py", line 246, in getresp
# raise error_perm(resp)
# ftplib.error_perm: 550 pub/libreoffice/flatpak/latest: No such file or directory
问题是我正在像这样使用urllib
:
import urllib.request
fp = urllib.request.urlopen('ftp://ftp.unicamp.br/pub/libreoffice/flatpak/latest/LibreOffice.flatpak')
并且urllib
不包含最后一个斜杠,因此给出了与上述相同的异常。关于如何强制urllib
在路径中包含斜杠的任何提示?
答案 0 :(得分:0)
酒吧内是否有libreoffice文件夹?
如果您浏览并检查pub中的文件夹,您将看到:
ftp.cwd('/pub')
#'250 CWD command successful'
ftp.nlst()
#<class 'list'>: ['GCNET', 'apache', 'apoio', 'banespa', 'biglinux', 'broffice', 'centos', 'ctmq', 'debian', 'downsizing', 'postgresql', 'ppc64el', 'security', 'suporte2', 'FreeBSD', 'deepines', 'gian', 'suporte', 'tdf', 'unix-tools', 'msg.welcome']