读取从用户上传的CSV文件的数据

时间:2018-09-30 14:38:52

标签: python csv web flask

我正在尝试编写一个Python / Flask脚本,将csv文件转换为其他文件。我已经开发了一个UI,以便用户可以上传CSV文件。我很难弄清楚如何读取从用户上传的CSV文件的数据。

@app.route('/import', methods=['GET', 'POST'])
    def upload():
        if request.method == 'POST':
            file = request.files['file']
            if not file.filename:
                errors.append("Please select a file!")
            else:
                ...
                data = [GET CSV DATA HERE]
                process_data(data)

如何从CSV文件中获取数据,以便可以通过以下方法:

def process_data(file):
    with open(file, 'r') as csv_file:
        csv_reader = csv.reader(csv_file, delimiter=',')
        ...

提前谢谢!

1 个答案:

答案 0 :(得分:2)

首先,我将交换if语句逻辑。

if file.filename:
    csv_file = request.files["file"]
    data = [GET CSV DATA HERE]
    process_data(data)
else:
    errors.append("Please select a file!")

#You could also have elif before the else to ensure
#that the requirement is met
elif file.filename:
    pass

只有当文件存在或已上传时,这才有意义,才应尝试读取文件。如果文件没有上传但有发布请求,例如有人上传了错误的文件类型,这将导致错误,从而导致脚本/应用执行失败。

该文件已经存在于请求中,但是她是一个简单的示例,您应该可以很容易地考虑到目前为止的工作量。

https://www.pythoncircle.com/post/30/how-to-upload-and-process-the-csv-file-in-django/