#python #python-3.x
#python #python-3.x
Вопрос:
Я создаю функцию, которая принимает обычный текстовый файл, а затем возвращает список слов в этом файле. Очевидно, я хотел бы избавиться от любого перевода строки ‘ n’, однако при использовании ‘.replace()’ ничего не происходит.
Функция:
textfile = 'name.txt'
def read_words(filename):
f = open(filename,'r')
message = f.read()
a = message.replace('n', '')
wordlist = a.split(' ')
print(wordlist)
read_words(textfile)
Пример текста:
Thisnnisnnnannnmynnwfile with spaces and blanks
Мой вывод:
['This\n\nis\n\n\na\n\n\nmy\n\nwfile', 'with', 'spaces', 'and', 'blanks']
Почему метод ‘.replace()’ не работает?
Комментарии:
1.
replace
Метод, безусловно, работает. Каков ваш ожидаемый результат?2. Почему
'.replace()'
метод не работает? Покажите нам результат, который заставляет вас думать, что он не работает. Вы показали нам только пример содержимого файла, который ничего не демонстрирует.3. Является ли образец txt буквально строкой
Thisnnisnnnannnmynnwfile with spaces and blanks
, или вы заменяете новые строки наn
для нас? В первом случае вам нужно будет избежать обратной косой черты при замене:message.replace('\n', '')
4. Как ввести один символ ‘ n’ в текстовый файл?
5. @DillonDavis с радостью примет ваш ответ, если вы его опубликуете
Ответ №1:
Проблема с вашей текущей заменой текста заключается в том, что
он считается escape-символом — буквенные символы n
вместо этого интерпретируются как символ новой строки. Решение этой проблемы заключается в экранировании самого
символа через \
. Затем ваш обновленный оператор replace будет читать:
a = message.replace('\n', '')
вместо:
a = message.replace('n', '')
Ответ №2:
Это может быть случай, когда python или некоторые другие языки программирования читают новую строку как escape-символ ‘n’. Итак, когда python считывает ваш файл, ‘ n’ означает новую строку, а ‘ n’ означает фактический символ ‘ n’, который вы написали в текстовом файле.
Итак, вам нужно заменить, как a = message.replace('\n', '')