gpt4 book ai didi

python - 从 C 到 Python

转载 作者:太空宇宙 更新时间:2023-11-04 08:54:50 25 4
gpt4 key购买 nike

如果这是一个蹩脚的问题,我真的很抱歉,但我认为这可能会帮助其他人进行同样的从 C 到 Python 的转换。我有一个开始用 C 编写的程序,但我认为最好是用 Python 编写,因为它只会让我的生活更轻松。

我的程序从 Yahoo! 检索盘中股票数据财务并将其存储在结构中。因为我已经习惯了用 C 编程,所以我通常会尝试用困难的方式做事。我想知道的是将数据存储为有组织的方式的最“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 中存储这些数据的最佳或最优雅的方式是什么?

最佳答案

保持简单。读取该行,用逗号分隔,并将值存储在 (named)tuple 中。这非常接近于在 C 中使用 struct

如果您的程序变得更加复杂,用类替换元组可能(!)有意义,但不是立即。

这是一个大纲:

from collections import namedtuple
IntradayData = namedtuple('IntradayData',
['close', 'high', 'low', 'open', 'volume', 'count'])

response = urllib2.urlopen('https://www.google.com/finance/getprices?q=AAPL')
result=response.read().split('\n')
result = result[15 :] # Your code does this, too. Not sure why.

all_data = []
for i, data in enumerate(x):
if data == '': continue
c, h, l, o, v, _ = map(float, data.split(','))
all_data.append(IntradayData(c, h, l, o, v, i))

关于python - 从 C 到 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17803698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com