Avatar ·

Cómo verificar si un archivo existe en Go (sin carreras de datos innecesarias)

¡Hola a todos! Acabo de empezar a aprender Go y me encontré con una tarea simple, a primera vista: necesito verificar si un archivo existe en el disco antes de leerlo o escribirlo. En Python solía hacerlo así: ```go import os if os.path.exists("myfile.txt"): print("El archivo existe") ``` Pero en Go no encontré una función tan simple. En la documentación del package `os` hay una función `Stat()` que devuelve un error si el archivo no existe. Escribí este código: ```go package main import ( "fmt" "os" ) func main() { _, err := os.Stat("myfile.txt") if err != nil { if os.IsNotExist(err) { fmt.Println("El archivo no existe") } else { fmt.Println("Ocurrió otro error:", err) } } else { fmt.Println("El archivo existe") } } ``` Parece que funciona, pero me preocupa que en la documentación de Go a menudo se dice que verificar la existencia antes de leer/escribir es un antipatrón, ya que entre la verificación y la operación