Форум сайта python.su
0
Накидал несколько строк, которые позволяют получить данные по акции с Яху Финанс. В файле
1.txt записана акция, например AAPL ( это Эппл, который яблоко и Стив). При исполнении, код берет строку из него и записывает эту акцию вместе с названием в файл csv.
Вопрос знатокам. Если прописать в файле несколько акций в столбик, например:
AAPL
F
GM
, то как можно сделать, чтобы скачивались все данные за эти акции друг за дружку. Полагаю с помощью while, но увы, моих скудных знаний не хватает.
from pandas_datareader import data input = open('C:/Users/1/Downloads/1.txt', 'r') s = input.read() r = data.DataReader(s, 'yahoo', '2010-01-01') r.to_csv('C:/Users/1/Downloads/'+s+'_data.csv')
Отредактировано daliyovowi (Фев. 9, 2017 17:11:17)
Офлайн
-8
Ну да - с помощью while и используя команду
with:
with open('C:/Users/1/Downloads/1.txt', 'r') as inputd: # Зачем вообще тут нужно было input?? finish = "" # input - системная команда для обработки текста написанного пользователем! a = inputd.readlines() for c in range(0, len(a)): finish += a[c]
Отредактировано python335 (Фев. 9, 2017 17:57:19)
Офлайн
0
Напиши пожалуйста как должен выглядеть код целиком. А то я пока далек и написал ерунду.
from pandas_datareader import data with open('C:/Users/1/Downloads/1.txt', 'r') as inputd: s = data.DataReader(s, 'yahoo', '1900-01-01') a = inputd.readlines() for c in range(0, len(a)): s += a[c] r.to_csv('C:/Users/II/Downloads/'+s+'_data.csv')
Отредактировано daliyovowi (Фев. 10, 2017 06:38:56)
Офлайн
0
python335
Ну да - с помощью while и используя командуwith:
Офлайн
221
python335не надо писать на Python как на C
finish = “”
# input - системная команда для обработки текста написанного пользователем!
a = inputd.readlines()
for c in range(0, len(a)):
finish += a
from pandas_datareader import data with open('C:/Users/1/Downloads/1.txt') as f: for value in f: # rstrip() здесь нужен что бы убрать символ перевода строки r = data.DataReader(value.rstrip(), 'yahoo', '2010-01-01') r.to_csv('C:/Users/1/Downloads/{}_data.csv'.format(value))
Отредактировано JOHN_16 (Фев. 9, 2017 23:36:41)
Офлайн
253
daliyovowiВ большинстве случаев вам должно хватать уже написанных за вас while в библиотеке.
Полагаю с помощью while, но увы, моих скудных знаний не хватает.
import pandas as pd frame = pd.read_csv("a.txt")
daliyovowiВообще подход неправильный. Если вы сами пишете данные, то нет причин писать их в csv формате, а потом мучаться с чтением. Пишите при помощи pickle, json, yaml Тогда и запись и чтение будут в одну две строчки.
В файле
1.txt записана акция, например AAPL
Отредактировано doza_and (Фев. 10, 2017 05:05:51)
Офлайн