如何从安全 FTP 服务器读取 CSV

Posted

技术标签:

【中文标题】如何从安全 FTP 服务器读取 CSV【英文标题】:How do I read a CSV from Secure FTP Server 【发布时间】:2021-11-11 09:33:03 【问题描述】:

我有一个脚本,它可以获取 .csv 文件和一些数据校正并保存我的 django 数据库。就我而言,我无法从 FTP 服务器获取 .csv 文件。我尝试了以下代码,但每次都遇到不同的错误。

import pandas as pd
import pysftp as sftp
with sftp.connect(your_host, your_user, your_pw) as conn:
    with conn.open("path_and_file.csv", "r") as f:
        df = pd.read_csv(f)

错误:“AttributeError:模块'pysftp'没有属性'connect'”

ftp = FTP('your_host')
ftp.login('your_user', 'your_pw')
ftp.set_pasv(False)

我不能更进一步。

我如何使用 pandas 从 FTP 服务器读取 .csv 文件?

我解决了我的问题如下:

我复制了文件然后以 pd 的形式打开。

with FTP(host) as ftp:
    ftp.login(user=user, passwd=password)
    print(ftp.getwelcome())

    with open("proj.csv", "wb") as f:
        ftp.retrbinary("RETR " + "proj.csv", f.write, 1024)
    
    with open("pers.csv", "wb") as f:
        ftp.retrbinary("RETR " + "pers.csv", f.write, 1024)

    ftp.quit()

【问题讨论】:

我认为这不是正确的方法,这里有一个链接pypi.org/project/pysftp 不幸的是,我尝试了 pysftp 的 Eaxmple,但显示“AttributeError: 'Connection' object has no attribute '_sftp_live'”错误。 ***.com/questions/65002585/… 您的解决方案不使用“安全 FTP” 【参考方案1】:
 import pysftp
 import pandas as pd
    
 cnopts = pysftp.CnOpts()
 cnopts.hostkeys = None
 
 with pysftp.Connection(hostname='hostname',username='username',password='password', cnopts=cnopts) as conn:
    conn.get('filename')

 with.open('filename') as f:
    df = pd.read_csv(f)

这应该给你 csv 的数据框。

【讨论】:

感谢您的回答,但我收到“用户警告:无法从 C:\Users\xxxxx\.ssh\known_hosts 加载 HostKeys。您需要显式加载 HostKeys (cnopts.hostkeys.load (filename)) 或 disableHostKey 检查 (cnopts.hostkeys = None)。" 您现在可以查看 我试过了,但是“用户警告:无法从 C:\Users\xxx\.ssh\known_hosts 加载 HostKeys。您需要显式加载 HostKeys (cnopts.hostkeys.load(filename)) 或 disableHostKey检查(cnopts.hostkeys = 无)。” @Seckinyilmaz 你所有的问题都已经在这里问过了。请在您询问之前搜索您收到的错误消息!也 SFTP 它不是 FTP。这些是完全不同的协议。 感谢您的努力。

以上是关于如何从安全 FTP 服务器读取 CSV的主要内容,如果未能解决你的问题,请参考以下文章

从 FTP 服务器上的 Zip 解压 csv 文件

如何将CSV文件直接发送到FTP服务器

MQL4:如何从 URL 读取 CSV

通过 FTP 将表复制到 CSV 文件 [重复]

如何在CentOS 7中安装,配置和安全加固FTP服务

如何在 CentOS 7 中安装配置和安全加固 FTP 服务