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)
我已经对上面的内容进行了严格的编辑以了解基础知识。
(根据经验)作为更广泛的解决方案的一部分,我建议您执行以下操作:
- 复制原始源文件并重命名为 .partial 文件或类似文件(以防止在传输过程中更改源文件)
- 尝试复制前检查远程(目标)区域是否存在类似文件,如果文件较旧或大小不同则删除,如果相同则放弃传输
- 传输 .partial 文件
- 检查目标位置的.partial 文件是否与源文件相同(校验和)
5a.如果相同,从 destFile 中删除 .partial
5b.如果不一样,重复传输
- 传输成功后,从源区删除.partial文件
我正在尝试使用 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)
我已经对上面的内容进行了严格的编辑以了解基础知识。
(根据经验)作为更广泛的解决方案的一部分,我建议您执行以下操作:
- 复制原始源文件并重命名为 .partial 文件或类似文件(以防止在传输过程中更改源文件)
- 尝试复制前检查远程(目标)区域是否存在类似文件,如果文件较旧或大小不同则删除,如果相同则放弃传输
- 传输 .partial 文件
- 检查目标位置的.partial 文件是否与源文件相同(校验和) 5a.如果相同,从 destFile 中删除 .partial 5b.如果不一样,重复传输
- 传输成功后,从源区删除.partial文件