python ftplib TypeError: a bytes-like object is required, not 'str'

python ftplib TypeError: a bytes-like object is required, not 'str'

我正在尝试使用 ftp 库将文件上传到服务器。

但是有错误

TypeError: a bytes-like object is required, not 'str'

enter image description here
enter image description here

当您在第 107 行打开 f 时,尝试 'rb' 而不是 'r'

这可能足以解决问题。

过去对于 SFTP,我使用的是 paramiko。代码片段如下:

import paramiko

def sendFile(**kwargs):

    trans = paramiko.Transport(kwargs['host'], kwargs['port'])  
    trans.connect(username = kwargs['username'], password = kwargs['password'])
    conn = paramiko.SFTPClient.from_transport(trans)
    conn.put(sourceFile, destFile)  

我已经对上面的内容进行了严格的编辑以了解基础知识。

(根据经验)作为更广泛的解决方案的一部分,我建议您执行以下操作:

  1. 复制原始源文件并重命名为 .partial 文件或类似文件(以防止在传输过程中更改源文件)
  2. 尝试复制前检查远程(目标)区域是否存在类似文件,如果文件较旧或大小不同则删除,如果相同则放弃传输
  3. 传输 .partial 文件
  4. 检查目标位置的.partial 文件是否与源文件相同(校验和) 5a.如果相同,从 destFile 中删除 .partial 5b.如果不一样,重复传输
  5. 传输成功后,从源区删除.partial文件