Python ftplib pwd() returns 空字符串

Python ftplib pwd() returns an empty string

我正在编写一个 Python 程序,主要围绕将文件从 PC 传输到目标设备。 到目前为止,我已经为程序中的所有其他函数使用了 ftplib 包。 到目前为止,我遇到了一个其他任何设备都没有发生的问题,即 ftp.pwd() returns 只是一个空字符串,但是当我使用 ftp.voidcmd("PWD") - 这是与 ftp.pwd() 相同,我得到了我的工作目录。

这是与问题相关的片段,请注意,我对其他一些设备也做过同样的事情,但从未发生过:

# CONNECT TO TARGET
ftp = FTP (host)
ftp.login(username , password)

ftp.cwd("/DirName")
# DOESNT WORK
res = ftp.pwd()
print(res)
# WORKS
res = ftp.voidcmd("PWD")
print(res)

ftplib 对 PWD 命令的响应代码 return 很严格。仅当代码是 RFC 959 所要求的 257 时,ftplib 才会认为响应有效并将 return 路径。

一些不起眼的 FTP 服务器不使用 257 代码,而是使用其他一些 2xx 代码。许多 FTP 客户端是宽容的,并将处理此类响应作为有效响应。 ftplib 不是。您将不得不继续使用 FTP.voidcmd("PWD").

的解决方法