实在不会了,救救孩子吧
有大佬用过python的paramiko模块么,我在一个windows上装了freeSSHd,然后用paramiko模拟shh连接进行下载文件,但是有的中文名的文件能成功下载,有的报错,查找了许多资料都没解决,排查估计是sftp.listdir模块不能识别,但是我找不到能解决问题的办法,求求大佬们了,能指点指点孩子么报错信息:UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 66-67: invalid continuation byte
这里是代码:
程序代码:import paramiko
import os
def DownLoadFile(sftp, LocalFile, RemoteFile): # 下载当个文件
file_handler = open(LocalFile, 'wb')
print(file_handler)
sftp.get(RemoteFile, LocalFile) # 下载目录中文件
file_handler.close()
return True
def DownLoadFileTree(sftp, LocalDir, RemoteDir): # 下载整个目录下的文件
if not os.path.exists(LocalDir):
os.makedirs(LocalDir)
for file in sftp.listdir(RemoteDir):
Local = os.path.join(LocalDir, file)
Remote = os.path.join(RemoteDir, file)
if file.find(".") == -1: # 判断是否是文件
if not os.path.exists(Local):
os.makedirs(Local)
DownLoadFileTree(sftp, Local, Remote)
else: # 文件
print(file)
DownLoadFile(sftp, Local, Remote)
return "complete"
if __name__ == '__main__':
host = '192.168.0.190' # 主机
port = 22 # 端口
username = 'YL123' # 用户名
password = '123456' # 密码
sf = paramiko.Transport((host, port))
sf.connect(username=username, password=password)
sftp = paramiko.SFTPClient.from_transport(sf)
local = 'e:\sshtest' # 本地文件
remote = '/freeSSHd/P211027178Y/' # 远程文件或目录
DownLoadFileTree(sftp, local, remote)





