python - 在 ftp 上自动编辑文件
问题描述
因此,情况如下:每天一次,将一个 csv 文件传送到我的 ftp 服务器。我需要将此信息导入我的 CRM 系统 (Salesforce)。对于这个操作,我计划使用 skyvia.com 和他们的调度服务。挑战在于 csv 在列上没有标题,而 skyvia 不处理这个问题。
所以问题:
是否可以在 ftp 服务器上的 csv 文件中自动插入标题行?我很可能会聘请一名自由职业者来做这件事,但我需要知道我的要求是什么。python web 脚本/应用程序是否能够处理这个问题?
是否有任何替代 skyvia 可以处理没有列标题的导入 csv?
是否有任何其他解决方案来处理此导入操作,无需编辑 csv 或使用 Skyvia,可以为 Salesforce 处理此问题?
我的技术水平足以自己处理一些操作,但我确实知道我的极限......
解决方案
FTP 协议不允许您在文件的开头插入一行。
您必须下载整个文件,在本地对其进行编辑,然后重新上传回来。
像这样:
from io import BytesIO
from ftplib import FTP
ftp = FTP(host, user, passwd)
f = BytesIO()
# Write header
f.write(str.encode("header\n"))
path = "/remote/path/file.csv"
# Append original contents
ftp.retrbinary("RETR " + path, f.write)
# Re-upload back
f.seek(0, 0)
ftp.storbinary("STOR " + path, f)
推荐阅读
- jquery - Jquery表单验证和提交
- python - Discord.py 在不保存音频文件的情况下播放 Gtts
- rust - Go 接口和 Rust 特征,以及将函数从 Go 移植到 Rust
- azure-logic-apps - 如何获取 Microsoft 认知服务 API 的端点和密钥?
- nginx - 如何配置 nginx 以显示 .ipynb scipy 笔记本而不下载它们
- eigen - 将特征添加到 PlatformIO
- python - Tensorflow Autoencoder ValueError:没有为任何变量提供梯度
- reactjs - 使用反应,当值存在时,如何使占位符移动到左上角的输入字段?
- python - django 表单未保存到数据库
- javascript - overflow-y 被应用到每一页