Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何更有效地使用blobstore.BlobReader_Python_Google App Engine_File Io_Python 2.7_Blobstore - Fatal编程技术网

Python 如何更有效地使用blobstore.BlobReader

Python 如何更有效地使用blobstore.BlobReader,python,google-app-engine,file-io,python-2.7,blobstore,Python,Google App Engine,File Io,Python 2.7,Blobstore,我在GAE上使用Python2.7,需要读取25到35MB大小的文件。我已将它们上载到Blobstore,并使用以下代码读取该文件: blob_reader = blobstore.BlobReader(blob_key) for line in blob_reader: # ... 我的问题是,如何使用BlobReader属性缓冲区大小和位置来更有效地执行此操作。文档不是很详细,我对文件I/O没有太多经验。给出的示例如下: # Instantiate a BlobReader fo

我在GAE上使用Python2.7,需要读取25到35MB大小的文件。我已将它们上载到Blobstore,并使用以下代码读取该文件:

blob_reader = blobstore.BlobReader(blob_key)
for line in blob_reader:
     # ...
我的问题是,如何使用BlobReader属性缓冲区大小和位置来更有效地执行此操作。文档不是很详细,我对文件I/O没有太多经验。给出的示例如下:

# Instantiate a BlobReader for a given Blobstore value, setting the
# buffer size to 1 MB.
blob_reader = blobstore.BlobReader(blob_key, buffer_size=1048576)

但目前还不清楚如何使用它来加快读取文件的速度


谢谢,

更大的缓冲区大小将导致读取行时更少的blobstore操作,这将更高效。只需将缓冲区大小设置得尽可能大,就可以进行排序。

因此,我试图读取的文件大小约为25 MB,但缓冲区仅为1 MB。这会使一些数据无法读取吗?我是wondring b'cos,因为即使任务位于后端,也似乎没有读取文件中的所有数据,因此不会超时。让我重新表述这个问题。BloRreader包含或表示一个包含大约80000行文本的文件,但是我只需要读取大约100行。有没有一种有效的方法可以扫描或搜索BlobReader(可能是使用一些正则表达式),然后只读取包含匹配文本的行?@Kwame缓冲区只是用来保存从blobstore读取但尚未返回到应用程序代码的数据,因此它不必对您读取的每一行(或字符!)进行RPC调用。它可以是任何大小,你仍然可以读取整个文件。除了自己做之外,没有办法对blobstore中的文本进行正则表达式匹配。
# Instantiate a BlobReader for a given Blobstore value, setting the
 # initial read position.
 blob_reader = blobstore.BlobReader(blob_key, position=4194304)