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