将csv写入Dropbox的Python脚本在本地工作,但在AWSEC2上运行时失败

2024-04-20 11:48:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python脚本,经过大量数据处理后,它将一个“.csv”文件写入我的Dropbox(它将一个文件直接保存到Dropbox,而不首先将其存储在本地)。当我在本地计算机上运行代码时,程序会按照我的预期成功创建文件。然而,当我在Amazon的EC2服务器上运行相同的代码时,所创建的文件是完全不可理解的

以下是问题的简化版本:

import io
import dropbox
import pandas as pd

DBX = dropbox.Dropbox('My_Dropbox_Token')

df = pd.DataFrame([range(5), list("ABCDE")])

with io.BytesIO() as stream:

    with pd.ExcelWriter(stream) as writer:
        df.to_excel(writer)
        writer.save()

    stream.seek(0)

    DBX.files_upload(stream.getvalue(), "/test.csv", mode=dropbox.files.WriteMode.overwrite)

当我在本地计算机上运行此代码时,数据框通常以.csv文件的形式出现在dropbox上。在EC2上运行相同的代码,我没有收到任何错误,但是创建的.csv是不敏感的

Image of what the CSV from EC2 looks like

如何修复此问题,使EC2中的.csv文件有意义

OBS:无论我将文件名保留为“/test.csv”还是“/test.xlsx”,我都会遇到相同的问题


Tags: 文件csv代码iotestimportstreamas