
Puedo tener una lista de nombres de archivos en una lista llamada 'a' usando el comando de terminal de Linux en Júpiter de la siguiente manera;
a=!find . -type f \! -name '*.*' -print
Para tener los nombres de los archivos sin extensiones, el comando correspondiente funciona en la terminal Linux;
find . -type f -exec sh -c '
for pathname do
pathname=$( basename "$pathname" )
printf "%s\n" "${pathname%.*}"
done' sh {} +
Pero, ¿cómo puedo ejecutar este comando en Jupyter asignándolo a un nombre 'a' como el anterior? El siguiente código no funcionó.
a=!find . -type f -exec sh -c '
for pathname do
pathname=$( basename "$pathname" )
printf "%s\n" "${pathname%.*}"
done' sh {} +
También intenté cambiar la sangría de las líneas, aparece un error de sintaxis o nada. De mi búsqueda en la línea de comando del bucle for en Júpiter, el '!' Quizás debería estar en una ubicación diferente. ¿Cómo puedo hacerlo funcionar?
Respuesta1
Resolví este problema de otra manera por si alguien tiene un problema similar. Usé la línea de comando
a=!find . -type f \! -name '*.*' -print
esto creó una lista de nombres de archivos con extensiones. Quité las extensiones de cada elemento.
files = [os.path.splitext(fname)[0] for fname in a]