【问题标题】:How to use gsutil compose in GoogleShell and skip first rows?如何在 GoogleShell 中使用 gsutil compose 并跳过第一行?
【发布时间】:2019-08-21 21:48:23
【问题描述】:

我正在尝试在 shell 中使用“compose”命令来合并我在存储桶 GCP 中获得的文件。当此命令合并这些 csv 文件但不跳过标题时会出现问题。

我最终得到的是 24 个 csv 文件和 24 个标题的合并。

尝试在 python 中执行此操作,但也没有解决方案。

有什么帮助吗??

【问题讨论】:

  • 你在做什么命令?

标签: csv google-cloud-storage


【解决方案1】:

gsutil 上不存在任何跳过 csv 标头的标志,但我有这个 python 脚本可以解决这个问题。

此脚本从存储桶下载 csv 文件,附加它们跳过标头,然后再次将附加的文件上传到存储桶。

import csv
from google.cloud import storage

client = storage.Client()
bucket = client.get_bucket('YOUR.BUCKET.NAME')
blob = bucket.get_blob('FILE1.NAME')
blob.download_to_filename('FILE1.NAME')
blob2 = bucket.get_blob('FILE1.NAME')
blob.download_to_filename('FILE2.NAME')
csvs = ["FILE1.NAME", "FILE2.NAME"]
writer = csv.writer(open('appended_output.csv', 'wt'))
for x in csvs:
    with open(x, "rt") as files:
        reader = csv.reader(files)
        next(reader, None)
        for data in reader:
            writer.writerow(data)

blob = bucket.blob("appended_output.csv")
blob.upload_from_filename("appended_output.csv")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    • 2015-01-09
    • 2023-02-04
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    相关资源
    最近更新 更多