繁体   English   中英

如何将pysftp中的csv文件下载到本地计算机? 无法将其保存在本地路径上,或将其加载到df中

[英]How to download csv file from pysftp to local machine? Can't get it to save on local path, or load it to a df

尝试连接到sftp,下载cvs,对文件进行一些操作并将其另存为csv

我知道代码在导航到sftp中的文件夹之前是正确的。 我认为它正在下载文件,因为代码需要花费一些时间才能运行,并且文件下载量很大。 但是我无法执行任何命令来打印文件,以确保它已被实际下载。 不确定get函数中的第二个参数是否应为将文件保存在本地计算机中的目标。

import pysftp

cnopts = pysftp.CnOpts()
cnopts.hostkeys = None   

myHostname = 'host.com'
myUsername = 'username'
myPassword = 'pass'

server = pysftp.Connection(host=myHostname, username=myUsername, password=myPassword, cnopts=cnopts)
server.cwd('/targetFolder/')
server.get('/targetFolder/file.csv','C:\\')

这是我得到的错误:

FileNotFoundError                         Traceback (most recent call last)
<ipython-input-74-0925a6d2adf3> in <module>
     10 server = pysftp.Connection(host=myHostname, username=myUsername, password=myPassword, cnopts=cnopts)
     11 server.cwd('/targetFolder/')
---> 12 server.get('/targetFolder/file.csv','C:\\')

C:\Users\rschuetz\Documents\Winpython\WPy64-3720\python-3.7.2.amd64\lib\site-packages\pysftp\__init__.py in get(self, remotepath, localpath, callback, preserve_mtime)
    247             sftpattrs = self._sftp.stat(remotepath)
    248 
--> 249         self._sftp.get(remotepath, localpath, callback=callback)
    250         if preserve_mtime:
    251             os.utime(localpath, (sftpattrs.st_atime, sftpattrs.st_mtime))

C:\Users\rschuetz\Documents\Winpython\WPy64-3720\python-3.7.2.amd64\lib\site-packages\paramiko\sftp_client.py in get(self, remotepath, localpath, callback)
    799             Added the ``callback`` param
    800         """
--> 801         with open(localpath, "wb") as fl:
    802             size = self.getfo(remotepath, fl, callback)
    803         s = os.stat(localpath)

FileNotFoundError: [Errno 2] No such file or directory: 'C:\\'

我怀疑下一行中的问题,并通过将第二个参数作为原始字符串传递来纠正。

server.get('/targetFolder/file.csv',r'C:\\')

似乎代码期望使用本地路径而不是目录的文件名,所以我认为这可以工作:

server.get('/targetFolder/file.csv','C:/file.csv')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM