How to send CSV file directly to an FTP server(如何将 CSV 文件直接发送到 FTP 服务器)
本文介绍了如何将 CSV 文件直接发送到 FTP 服务器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的问题是如何将 CSV 文件发送到 FTP 服务器.如您所见,以下脚本是我当前的代码:
My question is How can I send a CSV file to an FTP server. As you can see, the following script is the current code of mine:
代码示例:
def download_outage_info_all(request):
upload_data = download_data_form(request.POST)
if upload_data.is_valid():
print("valid")
start = upload_data.cleaned_data['start_date_time']
end = upload_data.cleaned_data['end_date_time']
print(start, '-', end)
start_timestamp = datetime.strptime(
start, '%Y-%m-%d %H:%M')
end_timestamp = datetime.strptime(
end, '%Y-%m-%d %H:%M')
try:
info = planned_outages.objects.filter(
start_timestamp__gte=start_timestamp, end_timestamp__lte=end_timestamp).values()
except Exception as e:
print("EXCEPTION", e)
print("**** Data not found *** ")
filename_date_part = datetime.now().strftime("%Y%m%d%H%M")
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment;filename=m_availability_' +
filename_date_part + '.csv'
writer = csv.writer(response, delimiter=';')
writer.writerow(['starts YYYY-mm-dd HH:MM:SS', 'time_zone',
'ends YYYY-mm-dd HH:MM:SS', 'asset id', 'availability type', 'PowerKW'])
for x in info:
try:
unit_mw = unit_details.objects.get(
unit_id=x['unit_id_id'])
# prints to csv file
writer.writerow([x['start_timestamp'], 'UTC',
x['end_timestamp'], unit_mw.unit_name,x['availability_type'], x['capacity_kw']])
except Exception as e:
print("EXCEPTION", e)
print("**** Data not found for unit_mw*** ")
return response
这是一个 Django 视图,我不想将 CSV 保存在本地系统上,我只想将其直接发送到 FTP 服务器.谁能帮帮我?
This is a Django view, I don't want to save the CSV on my local system, I just want to directly send it to an FTP server. Can anyone help me?
推荐答案
将 CSV 文件写入内存中类似文件的对象(例如 BytesIO) 并上传:
Write the CSV file to an in-memory file-like object (e.g. BytesIO) and upload that:
from ftplib import FTP
from io import BytesIO
import csv
flo = BytesIO()
writer = csv.writer(flo, delimiter=';')
writer.writerow(...)
ftp = FTP('ftp.example.com')
ftp.login('username', 'password')
flo.seek(0)
ftp.storbinary('STOR test.csv', flo)
这篇关于如何将 CSV 文件直接发送到 FTP 服务器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
编程基础网
本文标题为:如何将 CSV 文件直接发送到 FTP 服务器
基础教程推荐
猜你喜欢
- 用 Python 编写 Fortran 无格式文件 2022-01-01
- 与常规 dict 相比,Python manager.dict() 非常慢 2022-01-01
- numpy float:比算术运算中内置的慢 10 倍? 2022-01-01
- 由Python将MP3转换为MIDI(类型错误:无法加载插件:mtg-Melodia:Melodia) 2022-01-01
- 使用生成器和迭代器时 Python 多循环失败 2022-01-01
- 在 Celery 工作人员中捕获 Heroku SIGTERM 以优雅地关 2022-01-01
- 将 x 轴刻度更改为自定义字符串 2022-01-01
- Discord.py 缺少必需的参数 2022-01-01
- 尝试制作WhatsApp机器人 2022-01-01
- pyserial - 可以从线程 a 写入串行端口,是否阻塞从线程 b 读取? 2022-01-01
