如何从安全 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的主要内容,如果未能解决你的问题,请参考以下文章