2017-01-16 2 views
0

У меня был бы огромный список запасов Nasdaq, определенных как переменная. Вот код:Печать подстрок в каждой строке строки Python 3.5

from ftplib import FTP 

def my_function(data): 
    print(data.decode()) 

ftp = FTP('ftp.nasdaqtrader.com') 
ftp.login() 
nasdaq=ftp.retrbinary('RETR /SymbolDirectory/nasdaqlisted.txt', my_function) 

Если я распечатать строку «НАСДАК» Я вижу, что приходит в следующем формате:

AAAP|Advanced Accelerator Applications S.A. - American Depositary Shares|Q|N|N|100|N|N 
AAL|American Airlines Group, Inc. - Common Stock|Q|N|N|100|N|N 
AAME|Atlantic American Corporation - Common Stock|G|N|N|100|N|N 
AAOI|Applied Optoelectronics, Inc. - Common Stock|G|N|N|100|N|N 
and so on... 

Я хочу список, где только тиккеры печатаются:

AAAP 
AAL 
AAME 
AAOI 

Каков правильный подход для этого?

+0

Каков ваш нынешний подход к этому? Почему вы думаете, что это неправильно? – jonrsharpe

+0

Вы можете использовать метод 'split()' string в pipe ("|"), который вернет список. Первым пунктом в списке должен быть тикер – Jakub

+0

@ TigerhawkT3 Почему мой пост будет дублировать? Сообщение, которое вы упомянули, извлекает подстроку из более крупной строки, но не относится к необходимости петли на большее количество строк. –

ответ

0
print '\n'.join(share.split('|')[0] for share in nasdaq.splitlines()) 
+0

OP сказал, что это «огромный» список, поэтому обработка всего этого сразу, вероятно, не является отличным планом. – TigerhawkT3

+0

«Огромный» - это 3291 строка, которая не должна быть слишком тревожной. Но я согласен, что файл может быть больше. –

+1

Пожалуйста, отредактируйте свой ответ, или вы можете быть проголосовавшим. Как и сейчас, это просто предложение без контекста. См. Здесь [Как написать хороший ответ] (http://stackoverflow.com/help/how-to-answer). – jacefarm

Смежные вопросы