Python 如何在flask中正确读取文件
我想将一个列表传递给Jinja,它可以迭代并填充select字段的值。我正在努力正确构建用于正确填充选择字段的列表 我拥有的数据是从文本文件中读取的字符串列表。文本文件中的数据采用以下格式Python 如何在flask中正确读取文件,python,flask,Python,Flask,我想将一个列表传递给Jinja,它可以迭代并填充select字段的值。我正在努力正确构建用于正确填充选择字段的列表 我拥有的数据是从文本文件中读取的字符串列表。文本文件中的数据采用以下格式 ['Afghanistan', 'Albania', 'Algeria'] 我想在jinja模板中迭代这些元素并填充下拉列表。我的jinja模板如下所示 <select name="country"> {% for country in countryList %} &
['Afghanistan', 'Albania', 'Algeria']
我想在jinja模板中迭代这些元素并填充下拉列表。我的jinja模板如下所示
<select name="country">
{% for country in countryList %}
<option value="">{{country}}</option>
{% endfor %}
</select>
但在金贾,每件事都是一次读一个字。
我试过这个
lines = tuple(open(filename, 'r'))
但这也不能解决问题。在选择字段中,我只看到“[”
我尝试过的其他事情
with open(filename, 'r') as f:
array = []
for line in f:
array.append(line)
with open(filename, 'r') as f:
data_list = []
data_list = f.read().replace('\n', ' ')
我知道这不是Jinja或flask问题。但不确定如何从文本文件中正确读取数据,使其成为一个列表。我是否可以尝试一些可能会导致文本文件出现问题的方法?
data\u list
是一个字符串,因此迭代器将遍历每个字符。要获取列表,可以运行eval(数据列表)
,但这可能不安全。您应该以不同的方式构造文本文件,在值之间使用一些除名符,然后可以将数据列表设置为f.read().split('\n')
,例如,如果每个值都通过换行进行除名,即:
Afghanistan
Albania
Algeria
将输入文件的格式更改为:
Afghanistan
Albania
Algeria
然后您的代码变成:
with open(filename, 'r') as f:
country_list = [line.strip() for line in f]
return render_template('signup.html', countryList= country_list)
然后,您的模板文件应该可以正常工作,而不进行任何更改。您可以控制文本文件的格式吗?是的,我可以更改格式。更改文件格式后,它将继续工作。谢谢!
with open(filename, 'r') as f:
country_list = [line.strip() for line in f]
return render_template('signup.html', countryList= country_list)