python - 使用 pysftp 模块重命名文件的权限被拒绝

标签 python sftp file-rename pysftp

我是 Python 新手,正在编写一个使用 pysftp 模块的脚本。 pysftp 模块中有一个函数我遇到了问题——它是重命名函数。

这是电话

srv = pysftp.Connection(host = 'xxx.com', username = 'xxx', password = 'xxx')             
y = srv.rename('ftptest.txt', 'renamedfile.txt')

我遇到的错误是

Traceback (most recent call last):
   File "./ftp.py", line 49, in <module>
    y = srv.rename('ftptest.txt', 'renamedfile.txt')
   File "/usr/local/lib/python2.7/dist-packages/pysftp.py", line 740, in rename
self._sftp.rename(remote_src, remote_dest)
  File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 365, in     rename
     self._request(CMD_RENAME, oldpath, newpath)
  File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 729, in _request
    return self._read_response(num)
    File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 776, in _read_response
self._convert_status(msg)
  File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 804, in    _convert_status
raise IOError(errno.EACCES, text)
IOError: [Errno 13] Permission denied

我已验证该文件存在并且其权限为 777。

最佳答案

  1. 对于 SFTP 协议(protocol)(​​缺乏当前工作目录的概念),建议使用绝对路径。使用相对路径时,结果是特定于服务器实现的。因此您无法确定您实际上要重命名哪些文件。

  2. 在 *nix 系统上,要重命名文件,您需要对包含的文件夹具有写入权限。您要重命名的文件的权限并不重要。

关于python - 使用 pysftp 模块重命名文件的权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26637692/

相关文章:

javascript - 怎么打开网站隐藏的信息

python - pySerial问题: embedded controller stops echoing commands

bash - 找不到文件时sftp避免退出

c# - 如何使用 C# 和 .NET 使用 SFTP 连接与 key 文件

php - 如何更改文件夹中每个文件的名称

python - 更改多个文件的后缀

Python:字典列表,如何获取列表中多个项目的特定键的值?

没有 time.sleep() 的 Python 循环延迟

port - SFTP是否需要双向访问

regex - Powershell错误,根据前缀将后缀添加到文件名