首页 > 解决方案 > pandas csv 错误“TextFileReader”对象没有属性“to_html”

问题描述

我正在使用 Pandas 读取一个大型 csv 文件,然后使用 Flask 提供它。我收到错误消息'TextFileReader' object has no attribute 'to_html'。我认为块大小是导致问题的原因,但没有它我无法打开超过 4GB 的文件。

from flask import Flask, session, request, json,Response,stream_with_context,send_from_directory,render_template
import pandas as pd

app = Flask(__name__)

@app.route('/readcsv')
def host_data():
    csvname=request.args.get('csvname')
    df=pd.read_csv(csvname,chunksize=5000)
    return df.to_html(header="true")

标签: pythonpandas

解决方案


使用时,chunksize您将获得一个块生成器。例如,您应该使用以下命令连接它们:

df = pd.concat((chunk for chunk in pd.read_csv(csvname,chunksize=5000)))

在不实现某种分页的情况下提供这样的大文件,将创建来自服务器的完全阻塞响应,这将导致用户等待文件打开并正确呈现为 html。


推荐阅读