¿Cómo verificar si existe un archivo o directorio en R, Python y Bash?

¿Cómo verificar si existe un archivo o directorio en R, Python y Bash?

@programacion
https://unsplash.com/photos/05HLFQu8bFw

omprobando si existe un archivo o directorio en R

Para este ejemplo, hemos creado un archivo myfile.txty un directoriomy_test_folder .

¿Cómo comprobar si existe un archivo?

La presencia de un archivo es fácil de verificar con un comando file.exists()del paquete base. Vea el siguiente ejemplo:

if (file.exists("myfile.txt")) {  
  print("The file exists")
} else {  
  print("The file does not exist")
}

Y obtenemos:

[1] "The file exists"

Probemos ahora con un archivo que no existe:

if (file.exists("nofile.txt")) {  
  print("The file exists")
} else {  
  print("The file does not exist")
}

Aquí obtenemos:

[1] "The file does not exist"

Tenga en cuenta que la expresión if not file existstambién se escribe con la adición  !dentro del operador ifde esta manera:

if (!file.exists("myfile.txt"))

Además, si necesita crear un archivo vacío, se ejecuta el siguiente comando:

file.create("mynewfile.txt")

¿Cómo comprobar si existe un directorio?

Similar a verificar la presencia de un archivo, que usa file.exists(), la presencia de directorios se verifica usando el comando dir.exists(). Por ejemplo:

if (dir.exists("my_test_folder")) {  
  print("The directory exists")
} else {  
  print("The file does not exist")
}

Y obtenemos:

[1] "The directory exists"

Ahora hagamos el siguiente ejercicio. Verifiquemos si el directorio existe. Si no existe, crea uno nuevo:

if (dir.exists("my_new_folder")) {  
  print("The directory exists")
} else {  
  # create "my_new_folder
  dir.create("my_new_folder")
}

La carpeta my_new_folderse crea en nuestro directorio de trabajo.

Comprobando si existe un archivo o directorio en Python

Para este ejemplo, nuevamente usando el archivo myfile.txty el directorio my_test_folder.

¿Cómo comprobar si existe un archivo?

Aquí trabajaremos con el módulo os:

import os.pathif os.path.isfile('myfile.txt'):
    print("The file exists")
else:
    print("The file does not exist")

Además, el módulo está involucrado aquí pathlib:

from pathlib import Path
my_file = Path("myfile.txt")
if my_file.is_file():
    print("The file exists")
else:
    print("The file does not exist")

En Python, es posible crear un archivo vacío usando la extensión with open(filename.txt, 'w'). Por ejemplo:

import osif not os.path.isfile('myfile.txt'):
    with open('myfile.txt', 'w'): pass

O:

if not os.path.isfile('myfile.txt'):
    file_name = 'myfile2.txt'
    f = open(file_name, 'w')
    f.close()

Al abrir un archivo, tenga en cuenta los siguientes modos:

¿Cómo comprobar si existe un directorio?

Esto, nuevamente, es análogo a verificar la existencia de un archivo:

import os.pathif os.path.isdir('my_test_folder'):
    print("The directory exists")
else:
    print("The directory does not exist")

Y obtenemos:

The directory exists

El directorio se crea así:

import os
if not os.path.isdir('my_folder'):
    os.makedirs('my_folder')

Para verificar si un objeto Pathexiste de forma independiente o es un archivo/directorio, use exists():

from pathlib import Pathmy_file = Path("/path/to/file")
if my_file.exists():
    # path exists

O usando el módulo os:

import os.pathpath.exists("myfile.txt")

Comprobando si existe un archivo o directorio en Bash

¿Cómo comprobar si existe un archivo?

Para este ejemplo, volveremos a utilizar el archivo myfile.txty el directorio my_test_folder. Aquí trabajaremos con la bandera -f, que comprueba la presencia de un archivo normal, no de un directorio.

Usemos un script mycheck.shque se vea así:

Como era de esperar, el archivo existe. Ahora, si necesita crear un script vacío, se ejecuta el siguiente comando:

touch filename.txt

¿Cómo comprobar si existe un directorio?

Usamos la bandera aquí -d. Usemos el script dircheck.sh:

if [ -d my_test_folder ] 
then
    echo "The directory exists"
else 
   echo "The directory does not exist"
fi


Recibimos un mensaje de que el directorio existe.

Tenga en cuenta que se ejecuta el siguiente comando para crear el directorio:

mkdir yourdirectory

Tenga en cuenta también que la expresión if notcontiene el símbolo  !:

if [ ! -d my_test_folder ]

Y finalmente, aquí hay una lista de las banderas necesarias para verificar archivos y directorios en Bash:

  • -b filename  — archivo de bloque de dispositivo.
  • -c filename  — archivo de símbolos del dispositivo.
  • -d directoryname  — comprobar la presencia del directorio.
  • -e filename  — verificar la presencia de un archivo, independientemente del tipo (nodo, directorio, socket, etc.).
  • -f filename  - comprobar la presencia de un archivo normal, no un directorio.
  • -G filename  — comprobar si el archivo existe y si pertenece al ID de grupo efectivo.
  • -G filename set-group-id  -  Truesi el archivo existe y lo tiene set-group-id(establecer el ID de grupo en tiempo de ejecución).
  • -k filename  — un atributo adicional y un tipo especial de permisos de archivo/directorio Sticky bit.
  • -L filename  - enlace simbólico.
  • -O filename  —  True si el archivo existe y es propiedad del ID de usuario efectivo.
  • -r filename  - comprobar si el archivo es legible.
  • -S filename  — comprobar si el archivo es un socket.
  • -s filename  - compruebe si el tamaño del archivo es distinto de cero.
  • -u filename  - comprobar si el bit está configurado para el archivo set-user-id(configurar la ID de usuario en tiempo de ejecución).
  • -w filename  - comprobar si el archivo es escribible.
  • -x filename  - comprobar si el archivo es ejecutable.




Report Page