Удаление\r\n из списка Python после импорта с помощью readlines
Я сохранил список символов тикера в текстовом файле следующим образом:
MMM
ABT
ABBV
ANF
....
Затем я использую readlines, чтобы поместить символы в список Python:
stocks = open(textfile).readlines()
Однако, когда я смотрю на список, он содержит ограничитель конца строки Windows, который мне не нужен:
list: ['MMM\r\n', 'ABT\r\n', 'ABBV\r\n', 'ANF\r\n', 'ACE\r\n', 'ACN\r\n', 'ACT\r\n', 'ADBE\r\n', 'ADT\r\n', 'AMD\r\n', 'AES\r\n', .....
Может ли кто-нибудь предложить самый простой способ удалить эти нежелательные символы?
Ответы
Ответ 1
В основном, как работает readlines
. Вы можете выполнить его пост:
stocks = [x.rstrip() for x in stocks]
Но я предпочитаю не использовать readlines
вообще, если мне не нужны символы EOL, вместо этого:
stocks = open(textfile).read().splitlines()
Или даже лучше:
with open(textfile) as f:
stocks = f.read().splitlines()
(это почти наверняка не будет иметь никакого значения здесь, но использование контекстных менеджеров для явного закрытия файловых объектов - хорошая привычка входить)
Ответ 2
readlines()
никогда не должен использоваться, если вы не знаете, что файл действительно маленький. Для вашего приложения лучше использовать rstrip()
with open(filename, 'r') as f:
for l in f:
l = l.rstrip()
# other operations.
Ответ 3
Вы можете заменить \r\n
пустой строкой в команде replace
.
stocks = [x.replace("\r\n","") for x in stocks]
Ответ 4
Вы можете сделать это следующим образом:
stocks = open(textfile).read().splitlines()