You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Pandas加载远程SSH服务器上的CSV文件?

直接用Pandas加载SSH远程CSV文件的几种办法

方法1:用Paramiko建立SFTP连接读取

先安装依赖:

pip install paramiko

代码示例:

import pandas as pd
import paramiko

# 建立SSH连接
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 密码登录可添加 password='你的密码' 参数;密钥登录无需额外传参,默认读取本地~/.ssh/id_rsa
ssh_client.connect('1.2.3.4', username='root')

# 打开SFTP会话并读取远程文件
with ssh_client.open_sftp().open('/data/xxx.csv') as remote_file:
    df = pd.read_csv(remote_file)

# 处理完毕关闭连接
ssh_client.close()

方法2:用SSHFS挂载远程目录(适合多文件批量处理)

这种方式把远程服务器的目录挂载到本地,之后读取文件和操作本地文件完全一致,批量处理多文件更高效。

  • 先安装sshfs:
    • Ubuntu/Debian系统:sudo apt install sshfs
    • macOS系统:先安装Homebrew,再执行brew install sshfs
  • 挂载远程目录到本地文件夹:
sshfs root@1.2.3.4:/data/ ~/remote_data
  • 直接用Pandas读取文件:
import pandas as pd
df = pd.read_csv('~/remote_data/xxx.csv')
  • 处理完成后卸载挂载:
umount ~/remote_data

方法3:用subprocess直接拉取文件内容(轻量无额外依赖)

如果不想安装新库,可以借助系统自带的ssh命令读取远程文件内容,再传给Pandas处理:

import pandas as pd
import subprocess

# 通过ssh执行cat命令获取远程文件内容
cmd_result = subprocess.run(
    ['ssh', 'root@1.2.3.4', 'cat /data/xxx.csv'],
    capture_output=True,
    text=True
)
# 将输出内容转为可读取的流,传给read_csv
df = pd.read_csv(pd.compat.StringIO(cmd_result.stdout))

实用提示

  • 密钥登录配置:把本地SSH公钥(~/.ssh/id_rsa.pub)添加到远程服务器的~/.ssh/authorized_keys文件中,即可免密码连接,避免每次输入密码的麻烦
  • 多服务器批量处理:可以把连接、读取逻辑封装成函数,遍历你的服务器列表,逐个读取CSV文件后合并处理

内容的提问来源于stack exchange,提问作者nothingisme

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 09:05:09