我一直在四处挖掘,尝试了几种解决方案,但没有任何效果。我试图运行一个python脚本,通过SFTP下载一个特定的文件夹。我一直试图遵循这里的说明:https://pysftp.readthedocs.io/en/release_0.2.9/但运行时运气不佳:
import pysftp
with pysftp.Connection(host="sftp.url.com",username="username",password="password",port="##",private_key="C:\location\location"):
with sftp.cd('public'):
sftp.get('/todaysdate')
希望能够获取单个文件并将其下载到本地文件夹。
如果这是一个基本问题,请提前感谢,并表示歉意。我们已经做了很多挖掘工作,但还没有找到解决方案。
以下是我收到的错误消息:
Warning (from warnings module):
File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages\pysftp\__init__.py", line 61
warnings.warn(wmsg, UserWarning)
UserWarning: Failed to load HostKeys from M:\\.ssh\known_hosts. You will need to explicitly load HostKeys (cnopts.hostkeys.load(filename)) or disableHostKey checking (cnopts.hostkeys = None).
Traceback (most recent call last):
File "C:\BBG API\keytest2.py", line 3, in <module>
with pysftp.Connection(host="sftp.url.com",username="user",password="pass",port="##",private_key="C:/CSV/filename"):
File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages\pysftp\__init__.py", line 132, in __init__
self._tconnect['hostkey'] = self._cnopts.get_hostkey(host)
File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages\pysftp\__init__.py", line 71, in get_hostkey
raise SSHException("No hostkey for host %s found." % host)
paramiko.ssh_exception.SSHException: No hostkey for host sftp.trafix.com found.
有几件事。我知道您是在Windows上,所以您是否尝试过WinSCP以确保您可以在Python环境之外完全按照预期下载该文件?
此外,您正在更改目录,因此我不明白为什么需要在文件名之前加上正斜杠。
此外,对私钥位置(例如c:/location/location)使用前斜杠。