由于我的硬盘内存不足,我将大数据上传到了SFTP服务器。如何访问Python中的服务器并加载它们进行分析?我只想在Python上工作,并再次将输出发送到服务器,而不是将它们下载到我的计算机上。
使用Paramiko库,您可以使用SFTPClient.open
方法来检索与远程数据一起工作的类似文件的对象。然后,大多数Python API都可以使用这个类似文件的对象来代替本地文件句柄。
with sftp.open('filename.txt', bufsize=32768) as f:
# use f as if you have opened a local file with open()
有关一些现实生活中的示例,请参阅:
- 使用PythonParamiko从SFTP服务器读取.csv文件到内存
- 从SFTP服务器打开Astropy FITS文件
- 将JSON文件直接转储到远程SSH连接中,而无需先将其存储在本地计算机中
- 从SFTP文件中读取CSV/Excel文件,使用Pandas对这些文件进行一些更改,然后保存回
- 使用pdfplumber和Paramiko从SFTP服务器读取PDF文件
- 使用Paramiko将文件从SFTP传输到S3
- 使用Python将文件直接从SFTP服务器上传到Google bucket
但您仍将下载数据。如果没有下载(使用网络带宽(,您就无法在本地处理远程数据。您将不会将数据存储到本地文件系统。
对于bufsize=32768
,请参阅读取用Python Paramiko SFTPClient打开的文件。打开方法很慢。
访问https://pypi.org/project/pysftp/
import pysftp
with pysftp.Connection('hostname', username='me', password='secret') as sftp:
with sftp.cd('public'): # temporarily chdir to public
sftp.put('/my/local/filename') # upload file to public/ on remote
sftp.get('remote_file') # get a remote file
访问http://docs.paramiko.org/en/stable/api/sftp.html