Найти - Пользователи
Полная версия: Как создать цикл для нескольких строк кода
Начало » Python для новичков » Как создать цикл для нескольких строк кода
1
daliyovowi
Накидал несколько строк, которые позволяют получить данные по акции с Яху Финанс. В файле
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')
python335
Ну да - с помощью 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]
в finishn будет то что тебе надо

повысь репутацию плз!
daliyovowi
Напиши пожалуйста как должен выглядеть код целиком. А то я пока далек и написал ерунду.

 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')

И что если на строке, в файле 1.txt находится акция которой не существует, то есть строка записана неверно. Можно ли как то добавить пропуск такой строки, чтобы не вылетела ошибка? Спасибо.
daliyovowi
python335
Ну да - с помощью while и используя командуwith:
JOHN_16
python335
finish = “”
# input - системная команда для обработки текста написанного пользователем!
a = inputd.readlines()
for c in range(0, len(a)):
finish += a
не надо писать на Python как на C

daliyovowi
например вот так
 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))
doza_and
daliyovowi
Полагаю с помощью while, но увы, моих скудных знаний не хватает.
В большинстве случаев вам должно хватать уже написанных за вас while в библиотеке.

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html

 import pandas as pd
frame = pd.read_csv("a.txt")

pandas может прочитать вам данные почти для всех мыслимых ситуаций.

Указывать абсолютный путь файла плохой тон. трудно переносить программу.

Если у вас вызывает трудности while то думаю pandas вам рановато использовать.


daliyovowi
В файле
1.txt записана акция, например AAPL
Вообще подход неправильный. Если вы сами пишете данные, то нет причин писать их в csv формате, а потом мучаться с чтением. Пишите при помощи pickle, json, yaml Тогда и запись и чтение будут в одну две строчки.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB