Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

3.6K
Vistas
Escriba el archivo csv y guárdelo en S3 usando AWS Lambda (python)

Estoy tratando de escribir un archivo csv en un depósito S3 usando AWS Lambda, y para esto usé el siguiente código:

 data=[[1,2,3],[23,56,98]] with open("s3://my_bucket/my_file.csv", "w") as f: f.write(data)

Y esto genera el siguiente error:

 [Errno 2] No such file or directory: u's3://my_bucket/my_file.csv': IOError Traceback (most recent call last): File "/var/task/lambda_function.py", line 51, in lambda_handler with open("s3://my_bucket/my_file.csv", "w") as f: IOError: [Errno 2] No such file or directory: u's3://my_bucket/my_file.csv'

¿Puedo tener algo de ayuda con esto por favor?

PD: estoy usando python 2.7

Agradeciendotelo de antemano

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Mejor responder más tarde que nunca. Hay cuatro pasos para obtener sus datos en S3:

  • Llame al depósito S3
  • Cargue los datos en Lambda usando la biblioteca de solicitudes (si no la tiene instalada, tendrá que cargarla como una capa)
  • Escriba los datos en el archivo Lambda '/tmp'
  • Cargue el archivo en s3

Algo como esto:

 import csv import requests #all other apropriate libs already be loaded in lambda #properly call your s3 bucket s3 = boto3.resource('s3') bucket = s3.Bucket('your-bucket-name') key = 'yourfilename.txt' #you would need to grab the file from somewhere. Use this incomplete line below to get started: with requests.Session() as s: getfile = s.get('yourfilelocation') #Only then you can write the data into the '/tmp' folder. with open('/tmp/yourfilename.txt', 'w', newline='') as f: w = csv.writer(f) w.writerows(filelist) #upload the data into s3 bucket.upload_file('/tmp/yourfilename.txt', key)

Espero eso ayude.

over 4 years ago · Santiago Trujillo Denunciar

0

No estoy al tanto de usar AWS Lambda, pero he estado usando Boto3 para hacer lo mismo. Es un código simple de pocas líneas.

 #Your file path will be something like this: #s3://<your_s3_bucket_name>/<Directory_name>/<File_name>.csv import boto3 BUCKET_NAME = '<your_s3_bucket_name>' PREFIX = '<Directory_name>/' s3 = boto3.resource('s3') obj = s3.Object(BUCKET_NAME, PREFIX + '<File_name>.csv') obj.put(Body=content)
over 4 years ago · Santiago Trujillo Denunciar

0

with open("s3://my_bucket/my_file.csv", "w+") as f:

en vez de

 with open("s3://my_bucket/my_file.csv", "w") as f:

observe que la "w" ha cambiado a "w+", esto significa que escribirá en el archivo y, si no existe, lo creará.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda