我想在安全的SFTP文件夹中读取一些CSV/Excel文件,对这些文件进行一些更改(每个文件中的固定更改,如删除第2列),将它们上载到Postgre DB,并将它们上载到Python中不同的SFTP路径
最好的方法是什么
我已使用PySTFP库连接到SFTP,正在阅读Excel:
import pysftp
import pandas as pd
myHostname = "*****"
myUsername = "****"
myPassword = "***8"
cnopts =pysftp.CnOpts()
cnopts.hostkeys = None
sftp=pysftp.Connection(host=myHostname, username=myUsername,
password=myPassword,cnopts=cnopts)
print ("Connection succesfully stablished ... ")
sftp.chdir('test/test')
#sftp.pwd
a=[]
for i in sftp.listdir_attr():
with sftp.open(i.filename) as f:
df=pd.read_csv(f)
我应该如何继续上传到DB并将这些更改永久保存到CSV
您已经完成了下载部分
对于上传部分,请参见How to Transfer Pandas DataFrame to .csv on SFTP using Paramiko Library in Python?–对于Paramiko,pysftp ^{} method 的行为与Paramiko ^{} 相同,因此代码是相同的
完整代码可以如下所示:
以上更新了相同的文件。如果要上载到其他文件,请使用以下命令:
有关
bufsize
的内容,请参见:Writing to a file on SFTP server opened using pysftp "open" method is slow
强制性警告:不要设置
cnopts.hostkeys = None
,除非您不关心安全性。有关正确的解决方案,请参见Verify host key with pysftp这是一个问题中的几个问题:)
我建议采用这种方法:
pandas.io
或纯SQLAlchemy
将数据加载到postgree。检查文档here相关问题 更多 >
编程相关推荐