如何解决对存储在Google Cloud Storage存储桶中的CSV文件使用查找,写入和读取行方法
我的Python脚本上有多种方法可以处理csv文件。它在我的本地计算机上运行,但是当我使用存储在Google Cloud Storage存储桶中的同一个csv文件时却无法运行。我需要跟踪文件中的current_position,因此这就是为什么我使用seek()
和tell()
的原因。我尝试使用pandas库,但是没有这种方法。是否有人有Python脚本的基本示例,可以使用这些方法读取存储在GCP存储桶中的csv?
def read_line_from_csv(position):
#df = pandas.read_csv('gs://trends_service_v1/your_path.csv')
with open('keywords.csv') as f:
f.seek(position)
keyword = f.readline()
position = f.tell()
f.close()
return position,keyword
def save_new_position(current_positon):
f = open("position.csv","w")
f.write(str(current_positon))
f.close()
update_csv_bucket("position.csv")
def get_position_reader():
try:
with open('position.csv') as f:
return int(f.readline())
except OSError as e:
print(e)
解决方法
我认为
Official library没有这种功能。 您可以先下载文件,然后再打开文件并正常工作。
除了官方版本之外,您还可以使用实现gcsfs的missing functionality
import gcsfs
fs = gcsfs.GCSFileSystem(project='my-google-project')
with fs.open('my-bucket/my-file.txt','rb') as f:
print(f.seek(location))
,
@ emil-gi的建议之外的另一种方法是使用here中提到的方法
#Download the contents of this blob as a bytes object
blob.download_as_string()
blob是与GCS存储桶中的CSV关联的对象。 如果您需要先创建到Blob的连接(我不知道您在代码的其他部分中所做的工作),请使用docs
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。