Есть ли способ автоматически создавать папки в корзинах GCS на основе списка имен файлов? - PullRequest
0 голосов
/ 10 октября 2019

Основываясь на списке имен файлов, которые соответствуют меткам изображений, которые я хочу прогнозировать, я хотел бы автоматически создать эти папки, чтобы позже я мог переместить нужные файлы в нужную папку.

Чтобы облегчить это, особенно из-за огромного количества возможных папок, я хотел создать эти сегменты на основе идентификатора.

Так, например, у меня есть следующая метка списка 4354634 354545 4335435 112121 4865633 .. ..

Цель состоит в том, чтобы пробежаться по списку и создать папку в корзине

gs: // some-bucket-name / 4354634 /

gs: // some-bucket-name / 354545 /

gs: // some-bucket-name / 4335435 /

gs: // some-bucket-name / 112121 /

gs: // some-bucket-name / 4865633 /

gs: //some-bucket-name/.../

Я попробовал следующий код, ноэто только дало мне определенный вывод в записной книжке, а не путем создания папок

def sku_to_bucket(label_id):
    bucket = client.get_bucket('some-bucket')
    d = str(label_id) + '/'
    d = bucket.blob(d)

import pandas as pd
loop_sub = pd.read_csv("loopfile.csv")

for label_id in loop_sub.iterrows() :
    sku_to_bucket(label_id)
    print(str(label_id))

, вывод ниже


(0, label_id 63453654635, Name: 0, dtype = int64)

Ожидаемые результаты: получение структуры папок на основе label_id в корзине Google Cloud Storage.

1 Ответ

2 голосов
/ 10 октября 2019

Нет понятия «каталог»: объект blob / всегда является файлом. Обходной путь - добавить фиктивный файл в папку и загрузить этот фиктивный файл. Пожалуйста, проверьте следующий связанный вопрос ссылка .

Это код, который я использовал:

import pandas as pd

loop_sub = pd.read_csv("loopfile.csv", names = ['val'])
bucket = storage_client.get_bucket('some-bucket-name')
file = 'temp'

for label_id in loop_sub['val']:
    blob = bucket.blob(str(label_id) + '/')
    blob.upload_from_string(file)
...