Попытка открыть файл Excel, брошенный в корзину S3 - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь открыть файл Excel, упавший в корзину S3.Я не уверен, как это сделать, однако следующий код дает мне ошибку.

s3 = boto3.resource('s3')
bucket=s3.Bucket('mybucket')
rawstream = io.StringIO()
csvwriter = csv.writer(rawstream, delimiter="\t",doublequote=True, 
strict=True)

for key in bucket.objects.all():
    if key.key.startswith('dropzone'):
        if 'Air' in key.key:
            wb = xlrd.open_workbook(key.key)
            sheet = wb.sheet_by_index(0)

Я получаю сообщение об ошибке: [Errno 2] Нет такого файла или каталога:

Полный путь к файлу Excel: s3: //mybucket/dropzone/nike_Air.xlsx

1 Ответ

0 голосов
/ 19 июня 2019

open_workbook ожидает открытия файла в файловой системе, а не объекта в корзине S3.Сначала вам нужно загрузить файл в локальную файловую систему.Это было бы что-то вроде:

for key in bucket.objects.all():
    if key.key.startswith('dropzone'):
        if 'Air' in key.key:
            with open('local_file_name', 'wb') as f:
                s3.download_fileobj('mybucket', key.key, f)
            wb = xlrd.open_workbook('local_file_name')
            sheet = wb.sheet_by_index(0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...