gpt4 book ai didi

python - 使用 ftp.cwd() 两次时 FTP 给出 550 错误

转载 作者:太空宇宙 更新时间:2023-11-03 20:14:25 24 4
gpt4 key购买 nike

当我运行这部分时:

directory = ftp.pwd()
file_name = 'config.single'
ftp.cwd('plugins/GAListener')
print('dir:', directory)
ftp.cwd('plugins/CrateReloaded/crates')

它说:

ftplib.error_perm: 550 No such file or directory.

当我在 if 语句内多次更改目录时,它工作正常。

您无法像这样更改工作目录吗?在更改到另一个服务器目录之前,我是否需要重置到主服务器目录?如果是这样,我该怎么做?

代码中第一个目录就是它所访问的目录,然后在尝试更改为第二个目录时会出现错误。将第二个 ftp.cwd() 注释掉后,第一个运行时不会出现问题,无论它指向哪个目录,因此它们肯定都在那里。

此外,当我打印 directory 时,它只打印 / 而不是 plugins/GAListener

编辑:在 if 语句中执行此操作时,所有目录都会转到它们应该在的位置,并且在没有前导斜杠的情况下不会出现任何错误。

if day_of_week == 0 and file_name not in ftp.nlst():
ftp.rename('config.yml', 'config.single')
ftp.rename('config.double', 'config.yml')
print('plugins/GAListener/config.yml is now plugins/GAListener/config.single.')
print('plugins/GAListener/config.double is now plugins/GAListener/config.yml.')
ftp.cwd('plugins/MOTDCountdown')
ftp.rename('config.yml', 'config.sunday')
ftp.rename('config.monday', 'config.yml')
print('plugins/MOTDCountdown/config.yml is now plugins/MOTDCountdown/config.sunday.')
print('plugins/MOTDCountdown/config.monday is now plugins/MOTDCountdown/config.yml.')
ftp.cwd('plugins/Essentials')
ftp.rename('motd.txt', 'motd.sunday')
ftp.rename('motd.monday', 'motd.txt')

最佳答案

在第一个 cwd 之后,您最终会进入文件夹:

/plugins/GAListener

更改为相对路径plugins/CrateReloaded/crates(不带前导斜杠)将根据当前工作目录解析它。因此它将尝试打开文件夹:

/plugins/GAListener/plugins/CrateReloaded/crates

这很可能不存在。

我假设你想去

/plugins/CrateReloaded/crates

为此,您必须使用绝对路径(带有前导斜杠):

ftp.cwd('/plugins/CrateReloaded/crates')

关于python - 使用 ftp.cwd() 两次时 FTP 给出 550 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58543775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com