0

これが不十分な質問である場合は本当に申し訳ありませんが、C から Python への同じ移行を行う他の人に役立つ可能性があると思います。私は C で書き始めたプログラムを持っていますが、Python で作成するのが最善だと思います。なぜなら、Python で作成した方が私の人生がずっと楽になるからです。

私のプログラムは、Yahoo! から日中の株価データを取得します。資金調達し、構造体の内部に格納します。私は CI でのプログラミングに慣れているので、通常は難しい方法で物事を行おうとします。私が知りたいのは、データを整理された方法で保存する最も「Pythonesque」な方法です。タプルの配列を考えていましたか?

これが私のCプログラムの一部です。

// Parses intraday stock quote data from a Yahoo! Finance .csv file. 
void parse_intraday_data(struct intraday_data *d, char *path)
{
    char cur_line[100];
    char *csv_value;
    int i;

    FILE *data_file = fopen(path, "r");

    if (data_file == NULL)
    {
        perror("Error opening file.");
        return;
    }

    // Ignore the first 15 lines.
    for (i = 0; i < 15; i++) 
        fgets(cur_line, 100, data_file);

    i = 0;

    while (fgets(cur_line, 100, data_file) != NULL) {
        csv_value = strtok(cur_line, ",");
        csv_value = strtok(NULL, ",");
        d->close[i] = atof(csv_value);

        csv_value = strtok(NULL, ",");
        d->high[i] = atof(csv_value);

        csv_value = strtok(NULL, ",");
        d->low[i] = atof(csv_value);

        csv_value = strtok(NULL, ",");
        d->open[i] = atof(csv_value);

        csv_value = strtok(NULL, "\n");
        d->volume[i] = atoi(csv_value);

        i++;
    }

    d->close[i] = 0;
    d->high[i] = 0;
    d->low[i] = 0;
    d->open[i] = 0;
    d->volume[i] = 0;
    d->count = i - 1;
    i = 0;

    fclose(data_file);
}

これまでのところ、私の Python プログラムは次のようにデータを取得します。

response = urllib2.urlopen('https://www.google.com/finance/getprices?i=' + interval +     '&p=' + period + 'd&f=d,o,h,l,c,v&df=cpct&q=' + ticker)

質問は、このデータを Python に保存するための最善または最も洗練された方法は何ですか?

4

3 に答える 3

0

データを取得した後にどれだけのデータ操作をしたいかによると思います。たとえば、画面に表示するだけの場合は、タプルの配列で十分です。

ただし、並べ替え、検索、およびその他の種類のデータ操作を可能にする必要がある場合は、カスタム クラスが役立つと思います。その後、カスタム オブジェクトのリスト (または自作のコンテナー) を操作して、必要に応じて、カスタム メソッドを簡単に追加できます。

これは単なる私の意見であり、私は高度な Python 開発者ではないことに注意してください。

于 2013-07-23T07:24:46.487 に答える
0

Pandas ( http://pandas.pydata.org/pandas-docs/stable/ ) は、これに特に適しています。Numpy は少しレベルが低いですが、あなたの目的にも合うかもしれません。ただし、パンダルートに行くことをお勧めします。いずれにせよ、C の速度をあまり失うべきではないので、それはプラスです。

于 2013-07-23T07:28:20.893 に答える