-1 returns python 列表中倒数第二个项目
-1 returns second to last item in python list
我正在使用 Python 3.4 编写脚本,通过使用 urllib 提取数据并将其存储在文本文件中并使用 numpy 解压缩,从 Yahoo Finance's ChartAPI page 提取数据。但是,每当我尝试使用 [-1] 访问列表中的最后一个元素时,我最终会得到倒数第二个元素而不是最后一个元素。
这是我的相关代码:
import urllib.request
import numpy as np
def n_year_data(symbol):
tempFile = 'temp.txt'
open(tempFile,'w+') # to clear any previous content
yahooChartApi = 'http://chartapi.finance.yahoo.com/instrument/1.0/'+symbol+'/chartdata;type=quote;range=1y/csv'
with urllib.request.urlopen(yahooChartApi) as f:
sourceCode = f.read().decode('utf-8')
splitSource = sourceCode.split('\n')
for eachLine in splitSource:
splitLine = eachLine.split(',')
if len(splitLine) == 6:
if 'values' not in eachLine:
saveFile = open(tempFile,'a')
linetoWrite = eachLine+'\n'
saveFile.write(linetoWrite)
date, close, high, low, openPrice, volume = np.loadtxt(tempFile, delimiter=',', unpack=True)
print(date[-1])
n_year_data("GOOG")
上面的代码应该 return 最后一个日期,20150707。但是它 returns 20150706 是最后一个日期之前的日期。此外,当我查看我的文本文件时,所有日期都在那里,而且应该是这样。在此先感谢您的帮助或建议。
由于您在完成写入后没有正确关闭文件,您最终可能会遇到此问题或其他潜在问题。
不要在循环中打开并附加到文件。
考虑改用这个:
with open('temp.txt', 'w') as f:
for item in iterable:
f.write('hello')
with open('temp.txt', 'r') as f:
for line in f:
print(line)
我正在使用 Python 3.4 编写脚本,通过使用 urllib 提取数据并将其存储在文本文件中并使用 numpy 解压缩,从 Yahoo Finance's ChartAPI page 提取数据。但是,每当我尝试使用 [-1] 访问列表中的最后一个元素时,我最终会得到倒数第二个元素而不是最后一个元素。
这是我的相关代码:
import urllib.request
import numpy as np
def n_year_data(symbol):
tempFile = 'temp.txt'
open(tempFile,'w+') # to clear any previous content
yahooChartApi = 'http://chartapi.finance.yahoo.com/instrument/1.0/'+symbol+'/chartdata;type=quote;range=1y/csv'
with urllib.request.urlopen(yahooChartApi) as f:
sourceCode = f.read().decode('utf-8')
splitSource = sourceCode.split('\n')
for eachLine in splitSource:
splitLine = eachLine.split(',')
if len(splitLine) == 6:
if 'values' not in eachLine:
saveFile = open(tempFile,'a')
linetoWrite = eachLine+'\n'
saveFile.write(linetoWrite)
date, close, high, low, openPrice, volume = np.loadtxt(tempFile, delimiter=',', unpack=True)
print(date[-1])
n_year_data("GOOG")
上面的代码应该 return 最后一个日期,20150707。但是它 returns 20150706 是最后一个日期之前的日期。此外,当我查看我的文本文件时,所有日期都在那里,而且应该是这样。在此先感谢您的帮助或建议。
由于您在完成写入后没有正确关闭文件,您最终可能会遇到此问题或其他潜在问题。
不要在循环中打开并附加到文件。
考虑改用这个:
with open('temp.txt', 'w') as f:
for item in iterable:
f.write('hello')
with open('temp.txt', 'r') as f:
for line in f:
print(line)