Python TypeError:convert()缺少1个必需的位置参数:';文件名';

Python TypeError:convert()缺少1个必需的位置参数:';文件名';,python,file-upload,flask,typeerror,Python,File Upload,Flask,Typeerror,我刚开始学习python。 我的目标是使用flask构建一个程序,该程序通过文件上载将csv文件作为输入,在csv上执行代码并返回一个新的csv 每当我尝试运行代码时,在上载文件时总会出现以下错误: TypeError:convert()缺少1个必需的位置参数: “文件名” 我的代码如下: 导入操作系统 从flask导入flask,呈现\u模板,重定向,请求,从\u目录发送\u,url\u 从werkzeug.utils导入安全文件名 app=烧瓶(名称) 允许的_扩展=设置([“csv”])

我刚开始学习python。 我的目标是使用flask构建一个程序,该程序通过文件上载将csv文件作为输入,在csv上执行代码并返回一个新的csv

每当我尝试运行代码时,在上载文件时总会出现以下错误:

TypeError:convert()缺少1个必需的位置参数: “文件名”

我的代码如下:

导入操作系统
从flask导入flask,呈现\u模板,重定向,请求,从\u目录发送\u,url\u
从werkzeug.utils导入安全文件名
app=烧瓶(名称)
允许的_扩展=设置([“csv”])
APP_ROOT=os.path.dirname(os.path.abspath(_文件__))
UPLOAD\u FOLDER=os.path.join(APP\u ROOT,“静态/上传”)
app.config['UPLOAD\u FOLDER']=UPLOAD\u FOLDER
允许的def_文件(文件名):
在文件名和\
filename.rsplit('.',1)[1].lower()在允许的扩展名中
@应用程序路径(“/”)
def index():
返回渲染模板('index.html')
@app.route('/process',methods=['GET','POST'])
def upload_文件():
如果request.method==“POST”:
#检查post请求是否包含文件部分
如果“文件”不在request.files中:
闪存(“无文件部分”)
返回重定向(request.url)
file=request.files['file']
#如果用户未选择文件,则浏览器也会
#提交一个没有文件名的空部分
如果file.filename=='':
闪存('没有选定的文件')
返回重定向(request.url)
如果文件和允许的文件(file.filename):
filename=secure\u文件名(file.filename)
保存(os.path.join(app.config['UPLOAD\u FOLDER'],文件名))
返回重定向(url_表示('convert',filename=filename))
@应用程序路径(“/convert”)
def转换(文件名):
打开(上传文件夹+文件名,“r”,encoding=“UTF-8”)作为文件:
umlaute_dict={
‘ä’:‘ae’,#U+00E4\xc3\xa4
'ö':'oe',#U+00F6\xc3\xb6
“U”:“ue”,#U+00FC\xc3\xbc
‘Ä’:‘Ae’,#U+00C4\xc3\x84
“Ö”:“Oe”,#U+00D6\xc3\x96
‘Ü’:‘Ue’,#U+00DC\xc3\x9c
‘ß’:‘ss’,#U+00DF\xc3\x9f
“/”:”,
}
打开(上传文件夹+'csvfile.csv','w')作为文件二:
对于文件中的行:
final=“”
列表=行。拆分(“,”)
行=[]
firstname=列表[5]
对于umlaute_dict中的k:
firstname=firstname.replace(k,umlaute_dict[k])
title=列表[8]
对于umlaute_dict中的k:
title=title.replace(k,umlaute_dict[k])
行。追加(firstname+“,”)
行。追加(列表[7]+“,”)
行。追加(标题+“,”)
行。追加(列表[9]+“,”)
final=“”.连接(行)
打印(最终版)
filetwo.write(最终版)
filetwo.write(“\n”)
返回重定向(url_for('uploaded_file',filename=filetwo))
@app.route(“/uploads/”)
def上传文件(文件名):
从_目录返回发送_(app.config['UPLOAD_FOLDER'],文件名)

app.run(debug=True)
为什么您认为您的转换程序会收到文件名参数

这里少了一些东西

@app.route("/convert")
def convert(filename):
也许您希望在中遵循相同的代码模式

@app.route('/uploads/<filename>')
def uploaded_file(filename):
@app.route(“/uploads/”)
def上传文件(文件名):

为什么不上传完整错误(包括行号)?然后,我们可以准确地看到错误发生的位置以及导致错误的原因,而不是在代码中寻找对
convert
的调用。