В конце своей функции я записываю результаты в текстовый файл, который создается потому, что он не существует, как таковой:
new_file = charity + ".txt"
with open(new_file, "w") as handle:
handle.write("Matches found for " + charity.upper() + " in order of compatibility:\n")
for item in match_lst:
handle.write("Grant: " + item[2] + ". Funding offered: " + int_to_str(item[1]))
handle.write("Number of matches: " + str(item[0] - 1) + "\n")
handle.close()
Моя проблема заключается в том, что при записи вновый файл, кажется, он не признает символ новой строки, символ «£» и символ апострофа.Чтобы показать, о чем я говорю, вот выдержка из выходного файла:
Matches found for BLA in order of compatibility:
Grant: The Taylor Family Foundation. Funding offered: �500,000.00Number of matches: 1
Grant: The Peter Cruddas Foundation. Funding offered: �200,000.00Number of matches: 1
Grant: The London Marathon Charitable Trust Limited - Major Capital Project
Grants. Funding offered: �150,000.00Number of matches: 1
Grant: The Hadley Trust. Funding offered: �100,000.00Number of matches: 1
Grant: The Company Of Actuaries� Charitable Trust Fund. Funding offered: �65,000.00Number of matches: 1
Grant: The William Wates Memorial Trust. Funding offered: �50,000.00Number of matches: 1
Grant: The Nomura Charitable Trust. Funding offered: �50,000.00Number of matches: 1
Grant: The Grocers� Charity. Funding offered: �40,000.00Number of matches: 1
Для справки вот информация (то есть match_lst), которую я пытаюсь записать в ее исходной структуре данных
[(2, 500000.0, 'The Taylor Family Foundation', ['Young People', 'Arts Or Heritage', 'Social Reserarch'], ['Registered Charity']),
(2, 200000.0, 'The Peter Cruddas Foundation', ['Young People'], ['Registered Charity', 'Other']),
(2, 150000.0, 'The London Marathon Charitable Trust Limited - Major Capital Project Grants', ['Infrastructure Support', 'Sport And Recreational Activities'], ['Registered Charity', 'Limited Company', 'Other']),
(2, 100000.0, 'The Hadley Trust', ['Social Relief And Care', 'Crime And Victimisation', 'Young People', 'Social Reserarch'], ['Registered Charity', 'Limited Company']),
(2, 65000.0, 'The Company Of Actuaries’ Charitable Trust Fund', ['Young People', 'Disabilities', 'Social Relief And Care', 'Medical Research'], ['Registered Charity']),
(2, 50000.0, 'The William Wates Memorial Trust', ['Young People', 'Arts Or Heritage', 'Sport And Recreational Activities'], ['Registered Charity', 'Other']),
(2, 50000.0, 'The Nomura Charitable Trust', ['Young People', 'Education And Learning', 'Unemployment'], ['Registered Charity']),
(2, 40000.0, 'The Grocers’ Charity', ['Poverty', 'Young People', 'Disabilities', 'Healthcare Sector', 'Arts Or Heritage'], ['Registered Charity']) ]
Как видите, здесь все символы напечатаны нормально.
Для дальнейшего контекста, вот моя простая функция int_to_str:
def int_to_str(num_int):
if num_int == 0:
return "Discretionary"
else:
return '£' + '{:,.2f}'.format(num_int)
Итак, мой вопросКак я могу исправить это, чтобы напечатать все символы, которые отсутствуют / закодированы?