上传文件并使用 panda 打开时出现 Flask 问题

问题描述 投票:0回答:1

我有一个简单的烧瓶应用程序。我需要上传一个 Excel 文件,对其进行一些处理,然后将该文件保存在磁盘上。为此,我有这个代码。


app = Flask(__name__)

FILE_PATH = 'files'
app.config['UPLOAD_FOLDER'] = FILE_PATH

@app.post("/upload")
def upload():
    # Read the File using Flask request
    file = request.files['file']
    
    filename = secure_filename(file.filename)
    
    # Open with panda and do some work.This work don't affect so is no there
    input_df = pd.read_excel(io.BytesIO(file.read()), 'sheetName', header=None)

    # Save the file
    file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))

我在 Flask 控制台上没有错误,但是当我去上传文件夹时,我看到上传的 excel 文件有 0KB 并且我无法打开。

如果我不使用 Panda 打开,即从代码中删除

input_df = pd.read_excel(excel_path, 'sheetName', header=None)
,一切正常。上传的excel文件很好。

所以我的提示是我做错了什么 和熊猫?我需要在 read_excel 或类似的东西之后关闭?我正在阅读 Flask 和 pandas 文档,但没有看到任何相关内容。

谢谢

python pandas file flask file-upload
1个回答
0
投票

首次读取文件时,指针在文件内移动到末尾。如果您随后尝试保存文件,则不会留下任何数据,因为指针已经到达末尾。

如果读取文件后想保存,需要将指针移回开头后再保存。

# Open the file with pandas. 
# ...

file.seek(0)

# Save the file.
# ...
© www.soinside.com 2019 - 2024. All rights reserved.