用flask框架接收前端上传的文本文件后怎么读取该文件

我在做一个可视化的网站,需要用户把数据通过前端传到后端(flask),后端对该文件(.txt,.json)进行读取等一系列操作。
但是server.py中的filename无法被调用,文件名称是个变量,open方法的filepath就不知道怎么办了,还有我是小白,后端数据处理的操作我想放在另外一个python程序中进行,但是我在新文件中导包发现filename无法传过来。

@app.route('/upload', methods=['GET','POST'])
def upload(filename):
    upload_file = request.files['abc']
    if upload_file and allowed_file(upload_file.filename):
        filename = secure_filename(upload_file.filename)
        print(filename)
        upload_file.save(os.path.join(app.root_path, app.config['UPLOAD_FOLDER'], filename))
        return filename
    else:
         return 'failed'

下面是代码:

@app.route('/upload', methods=['GET','POST'])
def upload():
    if request.method == 'POST':
        upload_file = request.files['abc']
        if upload_file and allowed_file(upload_file.filename):
            filename = secure_filename(upload_file.filename)
            file_path = os.path.join(app.config['UPLOAD_FOLDER'], filename)
            upload_file.save(file_path)
            # 读取文件内容
            with open(file_path, 'r') as f:
                file_content = f.read()
                # 处理文件内容
                # ...
                return 'success'
        else:
            return 'failed'
    return '''
    <!doctype html>
    <html>
    <head>
        <title>Upload new File</title>
    </head>
    <body>
        <h1>Upload new File</h1>
        <form action="" method=post enctype=multipart/form-data>
            <p><input type=file name=abc>
               <input type=submit value=Upload>
        </form>
    </body>
    </html>
    '''


在 upload 函数中,首先判断是否为 POST 请求,如果是,则从 request.files 字典中获取文件对象(此处的 key 为 abc),接着使用 secure_filename 函数处理文件名,生成文件路径,并使用 save 方法保存到服务器端。最后,使用 Python 中的 open 函数读取文件内容,进行处理。

如果想要在另一个 Python 程序中处理文件内容,可以使用 Flask 提供的 url_for 函数生成文件路径,在新程序中导入 Flask 的应用对象,使用该应用对象获取路径信息。代码示例如下:

如果想在另一个 Python 程序中处理该文件,可以通过 Flask 提供的 url_for 函数生成文件的 URL,并在新程序中使用 requests 库读取文件内容。代码示例如下:

server.py
from flask import Flask, request, url_for
import os

app = Flask(name)
app.config['UPLOAD_FOLDER'] = 'uploads'

@app.route('/upload', methods=['GET','POST'])
def upload():
upload_file = request.files['abc']
if upload_file and allowed_file(upload_file.filename):
filename = secure_filename(upload_file.filename)
file_path = os.path.join(app.root_path, app.config['UPLOAD_FOLDER'], filename)
upload_file.save(file_path)
return url_for('get_file', filename=filename)
else:
return 'failed'

@app.route('/uploads/')
def get_file(filename):
return send_from_directory(app.config['UPLOAD_FOLDER'], filename)

new_program.py
import requests

url = 'http://localhost:5000/uploads/' + filename
res = requests.get(url)
file_content = res.content

对 file_content 进行处理,比如读取其中的内容,写入到另一个文件等

不难的,只要你梳理清楚就可以。
1、你接口入处,把文件保存;
2、触发另外一处的调用;
3、另外一处读取文件即可。


这样来描述,你会不会比较清晰。