我希望能够直接从Google Cloud Storage读取压缩文件,并使用Python csv包打开它们。 本地文件的代码如下:
def reader(self):
print "reading local compressed file: ", self._filename
self._localfile = gzip.open(self._filename, 'rb')
csvReader = csv.reader(self._localfile, delimiter=',', quotechar='"')
return csvReader
我已经使用过几个GCS API(基于JSON,cloud.storage),但是它们似乎都不能提供我可以通过gzip流式传输的内容。此外,即使文件未压缩,我也无法打开该文件并将其提供给cv.reader(Iterator类型)。
我的压缩CSV文件约为500MB,而未压缩的文件则使用多达几GB的空间。我认为这不是一个好主意:1-在打开它们之前本地下载文件(除非我可以同时下载和计算);或者2-在计算之前完全在内存中打开文件。
最后,我目前在本地机器上运行此代码,但最终,我将转移到AppEngine,因此它也必须在那里正常工作。
谢谢!