Удаление\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()