这个python FTP程序抛出了一个奇怪的异常

2024-04-29 19:47:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个非常简单的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在路径中包含尾部斜杠,有什么提示吗?你知道吗


Tags: inpyhomelibreofficelineftpurlliblatest
1条回答
网友
1楼 · 发布于 2024-04-29 19:47:58

酒吧里有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']

相关问题 更多 >