我正在尝试编写一个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=',')
...
提前谢谢!
答案 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/