如何读取GCP存储桶中文件的内容



我需要读取当前位于GCP存储桶中的文件的前20行。我正试图通过带有HTTP触发器的Google函数读取文件的内容。我可以访问该文件,但当我试图通过使用";return data_string";,这样我就可以看到输出,但它不起作用。我不必返回该文件的全部内容,这就是为什么我只需要前20行。理想情况下,我想要一些命令来读取内容,获取文件的每一行,并将其添加到一个数组中,然后我可以从中获取特定的行。如果我在我的开发PC上用谷歌存储桶中的同一个文件来做这件事,并使用open((命令,它会很好地工作。我可以阅读每一行并获取我想要的内容,但我需要通过谷歌功能进行测试。请帮忙!

这是我目前掌握的代码。

storage_client = storage.Client()
#define bucket
bucket = storage_client.get_bucket(bucket_name)

#Blob: File name that will be saved.
blob = bucket.get_blob('LAS.las')
data_string = blob.download_as_string()
print(data_string)
return data_string

如果需要20行,则可以使用.split('n')将字符串拆分为多行,然后使用[:20]获得20行。

似乎download_as_string()给出了bytes,如果你想确保它将使用utf-8,你必须使用decode()decode('utf-8')将其转换为unicode。如果你在编码cp1250时有文本,则decode('cp1250')

blob = bucket.get_blob('LAS.las')
data_string = blob.download_as_string()
# convert bytes to unicode
data_string = data_string.decode()  
# convert string to list of lines
lines = data_string.split('n')  
# return first 20 lines
return lines[:20]  

相关内容

  • 没有找到相关文章

最新更新