Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

253
Views
Python intente excepto, vuelva a intentarlo después de ejecutar la instrucción excepto

Estoy tratando de ejecutar una declaración, pero si falla, quiero ejecutar la declaración de excepción y luego quiero ejecutar el intento nuevamente. Sé que puedo usar bucles, pero estoy buscando una solución más elegante.

En mi caso de uso, trato de guardar un archivo en una carpeta, pero si obtengo el FileNotFoundError, quiero crear la carpeta en la excepción y volver a intentarlo.

 from pathlib import Path import os folder = Path('folder') df = [a,b,c] try: df.to_feather(folder / 'abc.ftr') except: os.makedirs(folder) df.to_feather(folder / 'abc.ftr')

Pero en este caso repetiría la df.to_feather(folder / 'abc.ftr') . Esto se vuelve molesto si la declaración se hace más grande y quiero abstenerme de construir una función para esto.

Otra forma podría ser:

 if folder not in os.listdir(): os.makedirs(folder) df.to_feather(folder / 'abc.ftr')

¿Sería esta la forma 'adecuada' de abordar esto?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Para responder a la pregunta en el título, puede hacer esto recursivamente:

 def do_stuff(x): try: stuff(x) except SpecificException: other_stuff(x) do_stuff(x)

Si desea crear un archivo, simplemente puede usar:

 pathlib.Path('/tmp/sub1/sub2').mkdir(parents=True, exist_ok=True)
over 4 years ago · Santiago Trujillo Report

0

Dado python3.2 os.makedirs tiene un argumento exist_ok opcional, que de forma predeterminada es False . Cuando se establece en True y os.makedirs recibe instrucciones para crear catálogos que ya existen, no es una operación. Así en lugar de

 if folder not in os.listdir(): os.makedirs(folder) df.to_feather(folder / 'abc.ftr')

solo puedes hacer

 os.makedirs(folder, exist_ok=True) df.to_feather(folder / 'abc.ftr')
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!