Похоже, вы относительно новичок в Python.Добро пожаловать.Сам я, как говорится, незнакомец здесь.
Джим прав, когда говорит, что вы должны попытаться использовать этот код, а не просить, чтобы он был написан для вас.Тем не менее, давая вам преимущество сомнения, я проведу вас через мои собственные, и, надеюсь, это будет опыт обучения
char_cfg = open('9188651a.txt', 'r')
special_chars = char_cfg.readline()
char_cfg.close()
Эти 3 строки открывают текстовый файл для чтения, читают первую строку встрока с именем special_chars, а затем закройте файл cfg, поскольку он нам больше не нужен.Мой файл 9188651a.txt просто выглядит так:
!\/&"-$;^
, он просто содержит символы, которые мы хотим заменить, в произвольном порядке.
Следующие три строки очень похожи, открываявторой файл, содержащий «грязные» названия стран, которые мы должны заменить:
ucountries = open('9188651b.txt', 'r')
list_countries = ucountries.readlines()
ucountries.close()
Обратите внимание на одно ключевое отличие: я использовал метод readlines () вместо readline ().Этот метод читает весь файл и помещает каждую строку в файле как строку в списке.Это может быть очень удобным способом чтения и хранения содержимого многострочного файла.Мой файл 9188651b.txt содержал следующие тестовые данные:
"America$"
"Brazil--"
"Czech"""
;Dubai
^^England"
Я заканчиваю код следующим образом:
countries = open('9188651c.txt', 'w')
for country in list_countries:
for bad_char in special_chars:
country = country.replace(bad_char, '')
countries.write(country)
countries.close()
Первые и последние строки проще всего понять: я открываю третьюфайл, 9188651c.txt для записи моего вывода (обозначается флагом 'w' при вызове метода open ()).Если этот файл еще не существует, Python автоматически создаст его для нас.Я закрываю файл, когда заканчиваю писать в него.Это стандартная практика кодирования на всех языках программирования.
Суть этой программы состоит из четырех строк между ними.
for country in list_countries:
говорит: «Переберите весь список стран, которые мы создалиранее, выполнение этого набора команд один раз каждый раз до конца. "Python позволяет вам зацикливать все элементы в структуре данных очень естественным образом.Это одна из причин, по которой люди иногда называют Python «исполняемым псевдокодом».
for bad_char in special_chars:
говорит: «Перебирайте строку, которую мы читаем из файла char_cfg, делая что-то для каждого символа в строке».Поскольку этот цикл for находится внутри другого цикла for, мы на самом деле пройдем этот цикл for несколько раз, по одному разу для каждой из итераций внешнего цикла.
country = country.replace(bad_char, '')
просто говорит: «Замените все вхожденияbad_char внутри строки страны (которая является одним элементом в списке строк list_countries) с '' или ничего. "Мы сохраняем измененную строку обратно в том же месте в list_countries.
Наконец,
countries.write(country)
записывает нашу измененную строку (страну) в следующую строку выходного файла.Обратите внимание на отступ этого кода относительно наших циклов;мы хотим, чтобы он выполнялся один раз для каждой страны, а не один раз для плохого символа, поэтому мы помещаем его в соответствующий отступ, чтобы Python включал эту команду во внешний цикл, но не во внутренний цикл.можно проверить, чтобы теперь быть:
America
Brazil
Czech
Dubai
England
Справедливое предупреждение, вам вряд ли удастся получить выгоду от таких сомнений очень часто.Люди, которые нашли время ответить, ожидают, что вы нашли время попробовать сами, прежде чем отправлять свой вопрос.Удачи с Python и будьте уверены - Stack Overflow - фантастический ресурс, когда вы научитесь правильно его использовать.