python - 从 GCS 存储桶中读取标头 csv python
问题描述
我想从云存储 GCP 中的 csv 中提取标头。问题是我提取了标头,但我有一个超过 20GB 的 csv 文件。
我用了一个图书馆。它可以提取标题,但需要大量内存。
import gcsfs
fs = gcsfs.GCSFileSystem(project=PROJECT)
with fs.open(f'{bucket}/{file}', 'rb') as f:
schema = f.read().decode("utf-8")
# Remove all words after the first new line
schema = re.sub("(\\n).*", "", schema)
我也试过这个命令,但它什么也没返回:
fs.read_block('gs://my-bucket/my-file.txt', offset=1000, length=10, delimiter=b'\n')
我的问题是如何只读标题而不是所有文件。
解决方案
schema = f.read()
这将读取整个文件。据推测,如果gcsfs.GCSFileSystem.open
像内置文件一样工作open
,它应该采用一个整数参数来指定要读取的字节数。
例如,如果标头大小为 100 字节,请尝试:
schema = f.read(100)
或者,如果标题是文件中的第一行,由一个\n
字符分隔,请尝试
schema = f.readline()
推荐阅读
- python - 我需要为此获得连续输入,但是当我使用 while 循环时,它会中断
- c++ - 限制数组类型的大小,虽然还没有实例
- bash - 我怎样才能得到 whoami 因为它会存在 *before* sudo 到变量中?
- datastage - 修剪前导和尾随空格而不使用数据阶段中的转换阶段
- python - Saleor电子商务:如何通过python代码或API批量插入产品
- insert - 使用 JpaRepository 进行插入并检查它是否成功的最佳方法是什么?
- pandas - 有没有办法在 Wing Personal 7.0 中很好地查看数据帧?
- c - 功能正在打印我的字符远离它应该在的位置
- c# - EF Core - 唯一约束,包括迁移中未检测到的导航属性
- bash - 从 Notepadqq 运行 bash 脚本不起作用